Java Native Module에서 JS 코드를 실행하는 방법을 찾고 있습니다. 타이머으로 솔루션을 찾았지만 콜백을 사용하며 앱이 백그라운드 일 때만 작동합니다 (React-native background process(android) handling?).React Native : AlarmManager를 사용하여 백그라운드에서 Java Module의 JS 코드 실행
AlarmManager을 사용하여 Java의 BroadcastReceiver를 깨우지 만,이 시점부터 어떻게 자바 스크립트 코드를 실행하는지 알 수 없습니다. 이 코드는 반응 컴포넌트가 아니지만 반응 SDK와 모듈 (facebooksdk, googlesdk, Keychain, Asyncstorage)을 사용합니다.
나는 (때문에 https://facebook.github.io/react-native/docs/native-modules-android.html에) DeviceEventEmitter에 리스너를 생성하고 브로드 캐스트 리시버에게 에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);
}
같은 뭔가를 실행하려고하지만 런타임 오류 주조했다 : 어쩌면 그렇지 않은
Caused by: java.lang.ClassCastException: android.app.ReceiverRestrictedContext cannot be cast to com.facebook.react.bridge.ReactApplicationContext
을 특히 애플리케이션이 닫힐 때 Java 모듈에서 JS를 백그라운드로 실행할 수 있습니다. 모든 팁을 환영합니다.
@ jonzee가 문제를 해결 했습니까? –