React native 为什么Android应用程序在使用“后退”按钮退出应用程序时会显示空白屏幕?

React native 为什么Android应用程序在使用“后退”按钮退出应用程序时会显示空白屏幕?,react-native,react-native-navigation,React Native,React Native Navigation,我正在开发React本机应用程序和用于应用程序内部导航的集成React本机导航包 Android应用程序被卡住,显示空白屏幕。如果我在Android应用程序中使用后退按钮关闭应用程序,就会发生这种情况。最后,我有一个列表屏幕,在重新打开应用程序后,它会显示一个空白屏幕,因为它没有调用导航。registerComponent,再次使用“上一步”按钮关闭时,它可能正在销毁应用程序。 这是我的index.js:中的一段代码: import { Navigation } from "react-nati

我正在开发React本机应用程序和用于应用程序内部导航的集成React本机导航包

Android应用程序被卡住,显示空白屏幕。如果我在Android应用程序中使用后退按钮关闭应用程序,就会发生这种情况。最后,我有一个列表屏幕,在重新打开应用程序后,它会显示一个空白屏幕,因为它没有调用
导航。registerComponent
,再次使用“上一步”按钮关闭时,它可能正在销毁应用程序。 这是我的index.js:中的一段代码:

import { Navigation } from "react-native-navigation";
import App from './src/app';

Navigation.registerComponent("appName", () => App); 
关闭应用程序并重新启动将修复启动屏幕上出现的问题。但一开始就不应该被卡住。只是通过后退按钮关闭时出现问题

有人对此有办法吗?请建议我如何处理并在使用“后退”按钮关闭应用程序后再次调用我的
Navigation.registerComponent

环境

  • React本机导航版本:2.12.0
  • React本机版本:0.58
  • 平台:仅限Android

要解决此问题,您需要在react本机导航包中进行修改。打开NavigationActivity.java文件并用新代码替换以下代码:

替换此代码:

@Override
    public void invokeDefaultOnBackPressed() {
        if (!navigator.handleBack(new CommandListenerAdapter())) {
         super.onBackPressed();
        }
    }
关于这一点:

@Override
    public void invokeDefaultOnBackPressed() {
        if (!navigator.handleBack(new CommandListenerAdapter())) {
          this.moveTaskToBack(true);
         //super.onBackPressed();
        }
    }

保存更改后,请在android设备上进行检查。

要解决此问题,您需要在react native navigation软件包中进行修改。打开NavigationActivity.java文件并用新代码替换以下代码:

替换此代码:

@Override
    public void invokeDefaultOnBackPressed() {
        if (!navigator.handleBack(new CommandListenerAdapter())) {
         super.onBackPressed();
        }
    }
关于这一点:

@Override
    public void invokeDefaultOnBackPressed() {
        if (!navigator.handleBack(new CommandListenerAdapter())) {
          this.moveTaskToBack(true);
         //super.onBackPressed();
        }
    }

保存更改后,请在android设备上检查。

为什么不使用新版的
react navigation
?@ArchanaSharma我遇到了同样的问题您解决了这个问题吗?@Ahtesham Shah请检查我下面的答案,它适合我。为什么你不使用新版的
react导航
?@ArchanaSharma我也遇到了同样的问题。你解决了这个问题吗?@Ahtesham Shah请检查我下面的答案,它适合我。非常感谢你的回复,我一定会尝试。你只需禁用/调整后退按钮功能。android优化了你的手机内存后,该应用程序可能仍会停留在白色屏幕上。非常感谢你的回复,我一定会尝试。你只需禁用/调整后退按钮功能即可。android优化手机内存后,该应用程序可能仍停留在白色屏幕上。