由于React-Native AppState
API仅适用于iOS,因此我正在为应用程序的Android端编写appState事件发射器。在应用程序的MainActivity
在Java端,我想从onResume
和功能发出告诉JS侧过我的应用程序或者是在前景或背景React-Native Android ReactContext返回null
此刻,我的桥梁可以最小化我的应用程序(并返回到我的设备上的主屏幕),并正确发射事件。但是,当我恢复我的应用程序没有被解雇......也没有什么是当应用程序最初打开时被解雇。
我缩小了这一点,因为在这些情况下,mReactInstanceManager.getCurrentReactContext()
为空......出于某种原因。
这里是我的代码MainActivity.java
:
@Override
protected void onPause() {
super.onPause();
if (mReactInstanceManager != null) {
mReactInstanceManager.onPause();
//send the appState back to JS
Log.d("REACT_STATE", "Paused"); //this always fires
if(mReactInstanceManager.getCurrentReactContext()!=null) {
WritableMap params = Arguments.createMap();
params.putString("currentAppState", "background");
sendEvent(mReactInstanceManager.getCurrentReactContext(), "appStateChange", params);
}
}
}
,并
,这是发射器代码:
private void sendEvent(ReactContext reactContext,
String eventName,
@Nullable WritableMap params) {
reactContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit(eventName, params);
}
事物的JS侧设置OK和工作 - 如果有帮助,我可以提供此代码。我很确定我的问题在于此。我是否试图在错误的时间发出这个消息?我需要将它移动到其他地方吗?任何意见非常感谢!
辉煌的例子..非常感谢。 –
@Srikanth谢谢。很高兴你喜欢。请投票等! :-) – scgough
我upvoted它..我有一个问题,如果你可以帮助我..我有一个菜单按钮和onclick()我需要发送事件 –