mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-04 22:56:32 +08:00
move NativeModule initialization off UI thread
Summary: Initializing natives modules on the UI thread blocks the JS thread if the UI thread is busy. Reviewed By: yungsters Differential Revision: D4611211 fbshipit-source-id: cd4fb9cb5e52a478b6692b784cfd9e3bf34c0d34
This commit is contained in:
committed by
Facebook Github Bot
parent
e32e4d9711
commit
b085215237
@@ -23,6 +23,7 @@ import com.facebook.react.bridge.CatalystInstance;
|
||||
import com.facebook.react.bridge.JavaScriptModuleRegistry;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.NativeModuleCallExceptionHandler;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.WritableNativeMap;
|
||||
import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec;
|
||||
import com.facebook.react.cxxbridge.CatalystInstanceImpl;
|
||||
@@ -36,10 +37,9 @@ public class ReactTestHelper {
|
||||
private static class DefaultReactTestFactory implements ReactTestFactory {
|
||||
private static class ReactInstanceEasyBuilderImpl implements ReactInstanceEasyBuilder {
|
||||
|
||||
private final NativeModuleRegistryBuilder mNativeModuleRegistryBuilder =
|
||||
new NativeModuleRegistryBuilder(null, null, false);
|
||||
private final JavaScriptModuleRegistry.Builder mJSModuleRegistryBuilder =
|
||||
new JavaScriptModuleRegistry.Builder();
|
||||
private NativeModuleRegistryBuilder mNativeModuleRegistryBuilder;
|
||||
|
||||
private @Nullable Context mContext;
|
||||
|
||||
@@ -51,6 +51,12 @@ public class ReactTestHelper {
|
||||
|
||||
@Override
|
||||
public ReactInstanceEasyBuilder addNativeModule(NativeModule nativeModule) {
|
||||
if (mNativeModuleRegistryBuilder == null) {
|
||||
mNativeModuleRegistryBuilder = new NativeModuleRegistryBuilder(
|
||||
(ReactApplicationContext) mContext,
|
||||
null,
|
||||
false);
|
||||
}
|
||||
mNativeModuleRegistryBuilder.addNativeModule(nativeModule);
|
||||
return this;
|
||||
}
|
||||
@@ -63,6 +69,12 @@ public class ReactTestHelper {
|
||||
|
||||
@Override
|
||||
public CatalystInstance build() {
|
||||
if (mNativeModuleRegistryBuilder == null) {
|
||||
mNativeModuleRegistryBuilder = new NativeModuleRegistryBuilder(
|
||||
(ReactApplicationContext) mContext,
|
||||
null,
|
||||
false);
|
||||
}
|
||||
JavaScriptExecutor executor = null;
|
||||
try {
|
||||
executor = new JSCJavaScriptExecutor.Factory(new WritableNativeMap()).create();
|
||||
|
||||
Reference in New Issue
Block a user