我正在将android本机视图导出到React Native组件中。视图有一组要调用的生命周期方法(onPause,onResume,onDestroy)。由于React Native仅为整个应用程序使用一个Activity,因此我无法将这些方法挂钩到主活动。 我试图使用一些View事件:
@Override
protected void onVisibilityChanged( View changedView, int visibility) {
super.onVisibilityChanged(changedView, visibility);
if (visibility == View.VISIBLE) {
this.startSensors();
}
else {
this.stopSensors();
}
}
@Override
public void onWindowFocusChanged(boolean hasWindowFocus) {
super.onWindowFocusChanged(hasWindowFocus);
if (hasWindowFocus) {
this.startSensors();
}
else {
this.stopSensors();
}
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
this.startSensors();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
this.stopSensors();
}
此事件仅在我直接更改其父组件内的导出组件时触发,而在使用React Native Navigation(使用react-native-router-flux)更改主屏幕时不会触发。
我还尝试将生命周期函数导出到NativeUtils中并在ComponentDidMount和ComponentWillUnmount中调用它们,但是在更改场景时不调用ComponentWillUnmount。
有没有办法在View的Resume(),onDestroy()事件上监听等效的onPause(),还是有办法在React Native端处理这个?