如何在调用startReactApplication之前在React Native中调用Java方法

时间:2018-09-05 14:04:44

标签: javascript android react-native

在我们的Android应用中,我会尽快初始化React Native JS代码,因为即使当前没有可见的React Native视图,我也会在后台运行一些JS代码。我通过致电ReactInstanceManager#createReactContextInBackground()来做到这一点。

这有效,并且JS代码被初始化,但是看来我无法调用任何用@ReactMethod注释的Java方法,直到我实际打开了一个调用ReactRootView#startReactApplication()的React Native视图。如果我尝试在此之前调用任何本机方法,则什么也不会发生,但是似乎调用被添加到队列中,然后在React视图打开时最终被拾取。

setTimeout()设置的计时器似乎也是如此。当还没有打开视图时,他们不会被呼叫。因此,似乎JS得到了评估,但是JS引擎还没有“运行”。

在打开任何React视图之前,如何确保引擎正常运行?

1 个答案:

答案 0 :(得分:0)

让您的第一个RN View调用@ReactMethod,它将在Java中设置一个标志。在设置该标志之前,不要让Java代码执行任何操作。