Java android硬件后退按钮关闭我的应用程序,但软后退按钮不';T

Java android硬件后退按钮关闭我的应用程序,但软后退按钮不';T,java,android,android-activity,back,onkeydown,Java,Android,Android Activity,Back,Onkeydown,我有一个应用程序,我希望后退按钮不关闭我的应用程序。因此,通过研究,我分别尝试了以下两种方法: public boolean onKeyDown(int keyCode, KeyEvent event) { // Back? if (keyCode == KeyEvent.KEYCODE_BACK) { // Back moveTaskToBack(true); return true;

我有一个应用程序,我希望后退按钮不关闭我的应用程序。因此,通过研究,我分别尝试了以下两种方法:

public boolean onKeyDown(int keyCode, KeyEvent event) {

        // Back?
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // Back
            moveTaskToBack(true);
            return true;
        } else {
            // Return
            return super.onKeyDown(keyCode, event);
        }
    }

这两种方法似乎都适用于我的Nexus6,它有软后退按钮(后退按钮在屏幕上)。 然而,当我让我的朋友在他的带有硬背按钮的One plus 1设备上测试应用程序时,他的手机会完全关闭应用程序。所以当他回到应用程序时,应用程序会从头启动

我有两个问题:

  • 如何防止硬回按钮关闭应用程序?我是否需要为硬回按钮处理添加一些额外的代码

  • 有没有什么方法我可以测试硬回按钮与模拟器,因为我没有一个设备与硬回按钮


  • 谢谢

    您的代码应该适用于硬/软后退按钮。但这可能是因为当您的活动移动到后台时,系统内存不足(例如,由于设备内存不足或一次运行的应用程序太多),强制关闭您的活动。也可能是电池节电,导致活动停止,甚至“开发人员选项>不保留活动/强制退出活动”选项可能已启用?您应该只需要onBackPressed。关键代码永远不应该实际触发。
    @Override
        public void onBackPressed() {
            moveTaskToBack(true);
        }