2017-02-22 1 views
1

React Native Android 앱에서 콜백을 여러 번 호출하는 방법을 알고 싶습니다.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 코드에서 제공하는 콜백에 대한 참조를 저장하고 정기적으로 호출 할 수 있습니까?

답변

0

콜백 대신 RCTDeviceEventEmitter를 사용하십시오.

은 JS 구독 :

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

는 네이티브 코드에서 이벤트를 보내기 :

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

This

ReactContextBaseJavaModule 인스턴스를 나타냅니다. 반응시 미세 조정 0.53

관련 문제