3

使用导航器,我从我的 react native android 应用程序回家,然后返回应用程序,它总是从初始路线开始,即我的初始屏幕。是否可以保留上次查看的组件,当应用程序重新打开时将显示的组件?

class AwesomeProject extends Component {
  render() {
    return (
      <Navigator
            style={{ flex:1 }}
             initialRoute={{ id: 'SplashPage' }}
             renderScene={ this.renderScene }
      />
    );
  }
    renderScene(route, navigator) {
      if (route.id === 'SplashPage') {
        return (
          <SplashPage
            navigator={navigator} {...route.passProps}
             />
        );
      }else if(route.id === 'HomePage'){
        return (
          <HomePage
            navigator={navigator} {...route.passProps}
             />
        );
      }else if(route.id === 'ListViewPage'){
        return (
          <ListViewPage
            navigator={navigator} {...route.passProps}
             />
        );
      }

    }

}
4

3 回答 3

0

您需要将以下代码添加到/android/app/src/main/java/com//MainActivity.java。因此,它维护应用程序堆栈。

     @Override
     public void onBackPressed() {
       if (mReactInstanceManager != null) {
          mReactInstanceManager.onBackPressed();
        } else {
          super.onBackPressed();
        }

如果您没有从上面得到答案,请按照以下参考: https ://facebook.github.io/react-native/docs/native-modules-android.html

在上面的最后一个参考文献中,react-native 中有应用程序的生命周期事件。因此,请遵循与原生 android onPause/onDestroy/onStop 方法相同的策略,请解决您的问题。

于 2016-06-03T04:40:06.100 回答
0

当你按下主页时,你能确保你的应用程序是实时的吗?

于 2016-06-03T08:01:33.627 回答
0

我的第一个建议是不要使用闪屏作为场景。如果您以这种方式使用它,它不是闪屏而是一个组件。使用下面链接中提到的本机 Java 代码来解决您的问题,就像魅力一样。

https://github.com/react-native-component/react-native-smart-splash-screen

有了这个,可以通过查看问题部分来修复某些导入错误,或者检查我在 github 中的代码,其中包含对 splashscreen 模块的完美使用。

https://github.com/UjjwalNepal/Dental

希望这可以帮助。谢谢

于 2017-02-24T03:34:02.340 回答