2016-09-22 76 views
2

我已经按照示例模式处理反应原生docs中的安卓后退按钮,它运行良好。我可以使用硬件后退按钮弹出我的导航堆栈。背景使用后退按钮的反应原生安卓应用程序

在堆栈中只有1个视图,虽然我不弹出它(就像这个例子),并且我从我的hardwareBackPress事件监听器返回false。在这一点上,我看到我的最终视图中调用了componentWillUnmount方法,此时我的应用程序关闭。

如果我返回true那么显然没有任何反应。

我想要发生的事情是,应用程序仅仅是“背景”而不是完全退出。

+0

雅,我面临着同样的问题。我有一个登录页面,移动到忘记密码页面,现在我点击回到导航弹出登录。再次登录时,我点击后退按钮,它不关闭应用程序。我不知道为什么。如果你知道答案,请帮助我。 – user2906641

+0

我正面临相反的问题。我的应用程序获取背景,我想关闭后退按钮按下。 https://stackoverflow.com/questions/45191413/react-native-application-does-not-shut-down-on-back-button – croraf

回答

2

回答了我自己的问题。关键是要覆盖在MainActiviy默认后退按钮行为:

public class MainActivity extends ReactActivity { 

    @Override 
    protected String getMainComponentName() { 
     return "foo"; 
    } 

    @Override 
    public void invokeDefaultOnBackPressed() { 
     // do not call super. invokeDefaultOnBackPressed() as it will close the app. Instead lets just put it in the background. 
     moveTaskToBack(true); 
    } 
} 
+0

我越来越疯狂了解如何重新编译(Java部分)后这种变化,我会很高兴在这里提示。只需要很少这样做。 –

+0

,再次,它使用'react-native run-android'重新编译所有时间,但似乎'moveTaskToBack'没有做它应该做的事情... #investigating –

+0

Wolfram Kriesing - 也许这是Android版本的问题'重新编码?它是什么版本? – pomo