From 5328d952a8dd0945005d9f7305aba913f438ffa7 Mon Sep 17 00:00:00 2001 From: Aaron Chiu Date: Sun, 19 Mar 2017 13:16:04 -0700 Subject: [PATCH] kill bridge only after cleaning up NativeModules Reviewed By: javache Differential Revision: D4734634 fbshipit-source-id: c2d425485679454397d18b1a0c389714c0e3c484 --- .../com/facebook/react/cxxbridge/CatalystInstanceImpl.java | 2 +- .../facebook/react/uimanager/events/EventDispatcher.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/CatalystInstanceImpl.java b/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/CatalystInstanceImpl.java index 80be1fbe51a..6133b257676 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/CatalystInstanceImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/CatalystInstanceImpl.java @@ -292,11 +292,11 @@ public class CatalystInstanceImpl implements CatalystInstance { // TODO: tell all APIs to shut down mDestroyed = true; - mHybridData.resetNative(); mReactQueueConfiguration.getNativeModulesQueueThread().runOnQueue(new Runnable() { @Override public void run() { mJavaRegistry.notifyJSInstanceDestroy(); + mHybridData.resetNative(); } }); boolean wasIdle = (mPendingJSCalls.getAndSet(0) == 0); diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java index d00d14c38e6..540714b2fee 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java @@ -171,7 +171,12 @@ public class EventDispatcher implements LifecycleEventListener { } public void onCatalystInstanceDestroyed() { - stopFrameCallback(); + UiThreadUtil.runOnUiThread(new Runnable() { + @Override + public void run() { + stopFrameCallback(); + } + }); } private void stopFrameCallback() {