mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-06 22:38:37 +08:00
move calls that need to be on the UI thread out of setupReactContext()
Reviewed By: achen1 Differential Revision: D4890541 fbshipit-source-id: 7fc87d3341a1cefd474481dcc1b7b6d02d92f445
This commit is contained in:
committed by
Facebook Github Bot
parent
b9eeaef243
commit
035f076594
@@ -722,6 +722,10 @@ public class ReactInstanceManager {
|
||||
UiThreadUtil.assertOnUiThread();
|
||||
mAttachedRootViews.add(rootView);
|
||||
|
||||
// Reset view content as it's going to be populated by the application content from JS.
|
||||
rootView.removeAllViews();
|
||||
rootView.setId(View.NO_ID);
|
||||
|
||||
// If react context is being created in the background, JS application will be started
|
||||
// automatically when creation completes, as root view is part of the attached root view list.
|
||||
if (mReactContextInitAsyncTask == null &&
|
||||
@@ -790,6 +794,12 @@ public class ReactInstanceManager {
|
||||
|
||||
@ThreadConfined(UI)
|
||||
private void onReloadWithJSDebugger(JavaJSExecutor.Factory jsExecutorFactory) {
|
||||
synchronized (mAttachedRootViews) {
|
||||
for (ReactRootView reactRootView : mAttachedRootViews) {
|
||||
reactRootView.removeAllViews();
|
||||
reactRootView.setId(View.NO_ID);
|
||||
}
|
||||
}
|
||||
recreateReactContextInBackground(
|
||||
new ProxyJavaScriptExecutor.Factory(jsExecutorFactory),
|
||||
JSBundleLoader.createRemoteDebuggerBundleLoader(
|
||||
@@ -799,6 +809,12 @@ public class ReactInstanceManager {
|
||||
|
||||
@ThreadConfined(UI)
|
||||
private void onJSBundleLoadedFromServer() {
|
||||
synchronized (mAttachedRootViews) {
|
||||
for (ReactRootView reactRootView : mAttachedRootViews) {
|
||||
reactRootView.removeAllViews();
|
||||
reactRootView.setId(View.NO_ID);
|
||||
}
|
||||
}
|
||||
recreateReactContextInBackground(
|
||||
new JSCJavaScriptExecutor.Factory(mJSCConfig.getConfigMap()),
|
||||
JSBundleLoader.createCachedBundleFromNetworkLoader(
|
||||
@@ -913,10 +929,6 @@ public class ReactInstanceManager {
|
||||
Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "attachMeasuredRootViewToInstance");
|
||||
UiThreadUtil.assertOnUiThread();
|
||||
|
||||
// Reset view content as it's going to be populated by the application content from JS
|
||||
rootView.removeAllViews();
|
||||
rootView.setId(View.NO_ID);
|
||||
|
||||
UIManagerModule uiManagerModule = catalystInstance.getNativeModule(UIManagerModule.class);
|
||||
int rootTag = uiManagerModule.addMeasuredRootView(rootView);
|
||||
rootView.setRootViewTag(rootTag);
|
||||
|
||||
Reference in New Issue
Block a user