gpt4 book ai didi

java - react native Android : allow to invoke callback multiple times

转载 作者:行者123 更新时间:2023-11-30 10:33:05 26 4
gpt4 key购买 nike

我想知道如何允许在 React Native 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());
}
}
}

但回调只允许运行一次(参见 the code from React Native repo )。如何保存对我的 JavaScript 代码提供的回调的引用,并继续定期调用它?

最佳答案

使用 RCTDeviceEventEmitter 而不是回调。

在 JS 中订阅:

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

从 native 代码发送事件:

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

This 引用了一个 ReactContextBaseJavaModule 实例。在 react 0.53 上工作正常

关于java - react native Android : allow to invoke callback multiple times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42381165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com