如果进行一个RN项目开发,初始化项目之后,就会有一个Activity是继承RnActivity的。
如果进行混合开发时,由于我们的Activity可能要做很多工作,还想继承我们原生的Activity。
因此,就可以自定义一个RN的Activity,无须继承官网的Activity。
假如,我们已经有了一个BaseActivity。再定义一个RnActivity,里面可以封装若干个抽象方法,所有的RnActivity都有可能使用到的。
再然后,就可以新定义一个Activity,这个Activity继承,我们自定义的RnActivity。
在onCreate方法中,
ReactRootView mReactRootView = new ReactRootView(this);
ReactInstanceManager.Builder builder = ReactInstanceManager.builder();
builder.setApplication(Application.getInstance());
builder.setJSMainModuleName("index.android");
builder.addPackage(new MainReactPackage());
builder.setUseDeveloperSupport(BuildConfig.DEBUG);
builder.setInitialLifecycleState(LifecycleState.RESUMED);
builder.setJSBundleFile(bundlePath);
mReactInstanceManager = builder.build();
// 注意这里的HelloWorld必须对应“index.android.js”中的
// “AppRegistry.registerComponent()”的第一个参数
mReactRootView.startReactApplication(mReactInstanceManager, "HelloWorld", null);
以上也可以称之为RN更新界面的方法。
这个bundlePath,就可以是热更新的Bundle文件在终端的位置。
这样就能正常使用,并增加了很多的自由度。