From 77a23bdf0f10f7f10ed8a58ea94af636d6b11b3e Mon Sep 17 00:00:00 2001 From: Joshua Gross Date: Fri, 5 Mar 2021 18:36:25 -0800 Subject: [PATCH] Make sure that TimingModule is subscribed to LifecycleEventListener events, and unsubscribes in onCatalystInstanceDestroy Summary: If modules are *not* eagerly init'd and expect lifecycle events, make sure (1) onHostResume is called immediately it it's currently active and (2) that listeners are removed in onCatalystInstanceDestroy. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D26859160 fbshipit-source-id: ce84deafd1f20d1680d333d1a176b0493623a4ee --- .../java/com/facebook/react/modules/core/TimingModule.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java index 5abe37b3a5a..16a0571d138 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java @@ -130,10 +130,13 @@ public final class TimingModule extends NativeTimingSpec @Override public void onCatalystInstanceDestroy() { + ReactApplicationContext reactApplicationContext = getReactApplicationContext(); + HeadlessJsTaskContext headlessJsTaskContext = - HeadlessJsTaskContext.getInstance(getReactApplicationContext()); + HeadlessJsTaskContext.getInstance(reactApplicationContext); headlessJsTaskContext.removeTaskEventListener(this); mJavaTimerManager.onInstanceDestroy(); + reactApplicationContext.removeLifecycleEventListener(this); } @VisibleForTesting