React Native Android原生视图生命周期事件

时间:2017-03-10 19:18:59

标签: javascript android react-native react-native-android react-native-router-flux

我正在将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端处理这个?

0 个答案:

没有答案