不按后退按钮关闭Android应用程序

时间:2012-10-02 07:08:52

标签: java android

  

可能重复:
  android pressing back button should exit the app

我正在尝试使用移动设备的后退按钮关闭应用。目前,我正在覆盖onKeyPressed方法并致电moveTaskToBack(true);。它确实隐藏了应用程序,但没有关闭它。它仍然留在记忆中。如何通过按后退按钮关闭应用程序?

这是我的代码

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

8 个答案:

答案 0 :(得分:2)

我认为更安全的是this.finish();

建议不要

System.exit(0),最好让Android对应用进行管理。

点击此链接:Is quitting an application frowned upon?

答案 1 :(得分:2)

你没有。好吧,不完全。

应用程序的生命周期是以这样的方式进行的,即在后台处于正常状态并且是预期的。这使得应用程序可以在用户需要时快速恢复到前端,并允许Android进行内存管理。您可以使用onPause()onResume()等特殊方法来帮助您处理此问题。

除此之外,finish()将关闭当前活动并将其从堆叠中移除,而System.exit(0)应关闭应用。

您应该阅读CommonsWare(Mark Murphy)对this问题的优秀答案,因为它解决了让Android将您的应用程序保留在内存中的多种原因。

答案 2 :(得分:1)

当您按下新活动时,请在前一个上调用finish(),否则它将保留在堆栈中,因此当您回击并弹出当前活动时会出现。

答案 3 :(得分:1)

您应该可以使用finish()来关闭您的应用。 但是如果是由于内存管理,我宁愿使用android自己的内存管理。它实际上非常好。如果需要释放内存,它会定期删除暂停的应用程序。除非它是一项服务,否则它不应该在堆栈中占用太多内存。但也有例外。

答案 4 :(得分:1)

不要抱它,但我相信onbackpressed现在是推荐的方法。是的完成();应该工作得很好。

答案 5 :(得分:0)

- 在后退按钮上使用System.exit(0) 关闭您的应用,这对于Java应用程序非常有用,同样适用于Android,但那么建议使用以下方法。

finish()finishActivity()是两种选择

答案 6 :(得分:-1)

System.exit(0)关闭整个应用。 finish()是关闭当前活动的另一个片段。

答案 7 :(得分:-1)

如果要退出应用程序,请写下以下内容:

finish() 

因为 System.exit(0)not recommended。 这也将从您的申请中退出。