0

可能重复:
android按下后退按钮应该退出应用程序

我正在尝试使用手机的后退按钮关闭应用程序。目前我正在覆盖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);
}
4

8 回答 8

2

我认为这样做更安全this.finish();

System.exit(0)不推荐,最好让Androidapp的管理。

检查此链接:退出应用程序是否令人不悦?

于 2012-10-02T07:12:43.413 回答
2

你没有。嗯,不完全。

应用程序的生命周期是以这样一种方式制作的,即处于后台是正常的和预期的。这允许应用程序在用户需要时快速恢复到前面,并允许 Android 进行内存管理。你有特殊的方法onPause()onResume()帮助你处理这个问题。

除此之外,finish()将关闭当前活动并将其从堆栈中删除,同时System.exit(0)应该关闭应用程序。

您应该阅读 CommonsWare (Mark Murphy) 对这个问题的出色回答,因为它解决了让 Android 将您的应用程序保留在内存中的许多原因。

于 2012-10-02T07:14:56.797 回答
1

当您推送新活动时,请在前一个活动上调用完成(),否则它将保留在堆栈上,因此在您回击并弹出当前活动时出现。

于 2012-10-02T07:11:01.783 回答
1

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

于 2012-10-02T07:17:26.873 回答
1

不要对我说,但我相信 onbackpressed 现在是推荐的方法。是的完成();应该可以正常工作。

于 2012-10-02T07:36:33.927 回答
0

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

finish()并且finishActivity()是 2 个选择

于 2012-10-02T07:10:40.450 回答
0

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

finish() 

因为不推荐System.exit(0)。这也将从您的应用程序中退出。

于 2012-10-02T07:10:55.177 回答
-1

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

于 2012-10-02T07:10:22.173 回答