【问题标题】:React native Android Home always starts a splash screenReact Native Android Home 总是启动一个闪屏
【发布时间】:2017-02-24 11:34:02
【问题描述】:

使用导航器,我从我的 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}
             />
        );
      }

    }

}

【问题讨论】:

  • 你能说得更清楚点吗?我不明白你的问题。
  • 我想要发生的是,在我点击 Android Home 按钮之前,我的应用所在的任何页面,然后当我再次打开我的应用时,我会返回该页面,而不是我的初始路线。跨度>

标签: react-native react-native-android


【解决方案1】:

您需要将以下代码添加到/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 方法相同的策略,请解决您的问题。

【讨论】:

  • 我想要发生的是,在我点击 Android Home 按钮之前,我的应用所在的任何页面,然后当我再次打开我的应用时,我会返回该页面,而不是我的初始路线。跨度>
  • 首先你需要知道你在谈论android应用程序的生命周期,当你按下主页按钮时,你的应用程序进入onPause状态,当你重新打开应用程序时,你的应用程序调用onResume状态。默认情况下,此方法由原生 android 自动处理。但是在 React-native 的情况下,我认为通过实施这种方法应该可以很好地工作。所以请看我上面提供的参考资料。
  • 无论如何这可以使用本机代码而不是本机android代码来处理吗?
【解决方案2】:

当你按下 home 键时,你能确保你的应用程序处于活动状态吗?

【讨论】:

  • 这是什么意思?
  • 我的意思是,如果您在重新打开应用程序时总是显示启动画面,那么您的应用程序是否有可能在您回家时被杀死?
【解决方案3】:

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

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

因此,某些导入错误可以通过查看问题部分来修复,或者检查我在 github 中的代码,其中包含对启动画面模块的完美使用。

https://github.com/UjjwalNepal/Dental

希望这会有所帮助。 谢谢

【讨论】:

    猜你喜欢
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 2018-01-02
    • 2022-01-06
    相关资源
    最近更新 更多