あなたは、あなたがそのライフサイクルイベント
//onResume = 'active'
//onPause = 'inactive'
//onStop = 'background'
@Override
public void onResume() {
super.onResume();
ReactContext reactContext = getReactInstanceManager().getCurrentReactContext();
WritableMap params = Arguments.createMap();
params.putString("event", "active");
// when app starts reactContext will be null initially until bridge between Native and React Native is established
if(reactContext != null) {
getReactInstanceManager().getCurrentReactContext()
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("ActivityStateChange", params);
}
}
@Override
public void onPause() {
super.onPause();
ReactContext reactContext = getReactInstanceManager().getCurrentReactContext();
WritableMap params = Arguments.createMap();
params.putString("event", "inactive");
if(reactContext != null) {
getReactInstanceManager().getCurrentReactContext()
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("ActivityStateChange", params);
}
}
@Override
public void onStop() {
super.onStop();
ReactContext reactContext = getReactInstanceManager().getCurrentReactContext();
WritableMap params = Arguments.createMap();
params.putString("event", "background");
if(reactContext != null) {
getReactInstanceManager().getCurrentReactContext()
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("ActivityStateChange", params);
}
}
に耳を傾けるMainActivity.javaにいくつかのコードを追加することによって、iOSのと同じ状態をシミュレートすることができますする必要がある場合はその後、あなたのJSにDeviceEventEmitter
を使用して、これらのライフサイクルの変化に耳を傾けます
const nativeEventListener = DeviceEventEmitter.addListener('ActivityStateChange',
(e)=>{
console.log(e.event);
})
これはバグではありません。 AndroidのAppStateコンポーネントの実装には、「アクティブ」と「バックグラウンド」状態のみがあります。好奇心が強い、なぜユーザーがアプリを出ようとしているときにアプリロゴのフルスクリーン表示をしたいのですか? – Jickson
マルチタスクビューで機密データが表示されないように表示します。 私はネイティブのものに掘り下げる必要があると思います。 – algizmo