我正在寻找一些方法来从Java本机模块执行JS代码。我发现与定时器解决方案,但它使用回调,它只适用于当应用程序在后台(React-native background process(android) handling?)。React Native:在后台使用AlarmManager从Java模块运行JS代码
我使用AlarmManager来唤醒Java的BroadcastReceiver,但我不知道从这一点开始,如何运行Javascript代码。此代码不是React组件,但它使用了一些反应sdk和模块(facebooksdk,googlesdk,Keychain,Asyncstorage)。
我试图在DeviceEventEmitter(由于https://facebook.github.io/react-native/docs/native-modules-android.html)创建监听器并在运行的BroadcastReceiver像
public class Alarm extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ReactApplicationContext contxt = (ReactApplicationContext) context;
contxt.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("runTask", null);
}
但我已经投运行时错误:
也许这不是可以在后台运行Java模块中的JS,特别是在关闭应用程序时。任何提示都欢迎。
@jonzee是否解决了您的问题? –