diff --git a/Android/app/src/main/java/pub/doric/demo/MainActivity.java b/Android/app/src/main/java/pub/doric/demo/MainActivity.java index 3900c3cc..26ba1856 100644 --- a/Android/app/src/main/java/pub/doric/demo/MainActivity.java +++ b/Android/app/src/main/java/pub/doric/demo/MainActivity.java @@ -75,10 +75,8 @@ public class MainActivity extends AppCompatActivity { @Subscribe(threadMode = ThreadMode.MAIN) public void onEnterDebugEvent(EnterDebugEvent enterDebugEvent) { - ((FrameLayout) findViewById(R.id.root)).removeAllViews(); DoricDriver.getInstance().changeJSEngine(false); doricContext.init(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); - doricContext.getRootNode().setRootView((FrameLayout) findViewById(R.id.root)); } @Override diff --git a/Android/doric/src/main/java/pub/doric/engine/DoricJSEngine.java b/Android/doric/src/main/java/pub/doric/engine/DoricJSEngine.java index 7d7896bf..e7965961 100644 --- a/Android/doric/src/main/java/pub/doric/engine/DoricJSEngine.java +++ b/Android/doric/src/main/java/pub/doric/engine/DoricJSEngine.java @@ -211,13 +211,18 @@ public class DoricJSEngine implements Handler.Callback, DoricTimerExtension.Time return mDoricRegistry; } - public void changeJSEngine(boolean isNative) { - mDoricJSE.teardown(); - if (isNative) { - mDoricJSE = new DoricNativeJSExecutor(); - } else { - mDoricJSE = new DoricRemoteJSExecutor(); - } - injectGlobal(); + public void changeJSEngine(final boolean isNative) { + mJSHandler.post(new Runnable() { + @Override + public void run() { + mDoricJSE.teardown(); + if (isNative) { + mDoricJSE = new DoricNativeJSExecutor(); + } else { + mDoricJSE = new DoricRemoteJSExecutor(); + } + injectGlobal(); + } + }); } }