Android: Fix memory leak in AccessibilityInfoModule

Summary:
This change fixes a memory leak in `AccessibilityInfoModule`.

Our tooling detected this memory leak. After this commit, we no longer see the leak in the tool. We've been using the change in our app.

Adam Comella
Microsoft Corp.
Closes https://github.com/facebook/react-native/pull/14171

Differential Revision: D5128845

Pulled By: javache

fbshipit-source-id: b604902188eb8cc029b1ad39d087e199ae26877c
This commit is contained in:
Adam Comella 2017-05-25 02:50:14 -07:00 коммит произвёл Facebook Github Bot
Родитель 9dc0385405
Коммит e9ae31dfd6
1 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -43,8 +43,8 @@ public class AccessibilityInfoModule extends ReactContextBaseJavaModule
public AccessibilityInfoModule(ReactApplicationContext context) {
super(context);
mAccessibilityManager = (AccessibilityManager) getReactApplicationContext()
.getSystemService(Context.ACCESSIBILITY_SERVICE);
Context appContext = context.getApplicationContext();
mAccessibilityManager = (AccessibilityManager) appContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
mEnabled = mAccessibilityManager.isTouchExplorationEnabled();
if (Build.VERSION.SDK_INT >= 19) {
mTouchExplorationStateChangeListener = new ReactTouchExplorationStateChangeListener();
@ -92,6 +92,12 @@ public class AccessibilityInfoModule extends ReactContextBaseJavaModule
updateAndSendChangeEvent(mAccessibilityManager.isTouchExplorationEnabled());
}
@Override
public void onCatalystInstanceDestroy() {
super.onCatalystInstanceDestroy();
getReactApplicationContext().removeLifecycleEventListener(this);
}
@Override
public void onHostDestroy() {
}