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
committed by Facebook Github Bot
parent 9dc0385405
commit e9ae31dfd6

View File

@@ -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() {
}