REECT Native Android:允许多次调用回调



我想知道如何允许在React Andato Android应用中多次调用回调。

我的Android本机模块使用com.facebook.react.bridge.Callback保存回调,并使用AlarmManager.setRepeating定期调用。

代码看起来像这样。

public class BackgroundAlarmReceiver extends BroadcastReceiver {
    private static Callback callback;
    private void executeCallback() {
        Log.d("BackgroundAlarmReceiver", "Performing background work...");
        try {
            callback.invoke();
        } catch (IllegalViewOperationException e) {
            Log.d("BackgroundAlarmReceiver", e.getMessage());
        }
    }
}

但是只允许一次运行回调(请参阅React Native Repo中的代码)。如何保存对我的JavaScript代码提供的回调的引用,并继续定期调用?

使用rctdeviceeventemitter而不是回调。

在JS中订阅:

DeviceEventEmitter.addListener('onError',(error) => console.log(error))

从本机代码发送事件:

this.getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(name,data);

This是指ReactContextBaseJavaModule实例。在React 0.53

上工作正常

相关内容

  • 没有找到相关文章

最新更新