我正在尝试使用移动设备的后退按钮关闭应用。目前,我正在覆盖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);
}
答案 0 :(得分:2)
我认为更安全的是this.finish();
。
System.exit(0)
,最好让Android
对应用进行管理。
答案 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)