我尝试过System.Exit(0),但这不是我需要的;
我正在尝试安全地销毁Android应用程序并从内存中清除它,
我可以创建一个按钮来退出Android应用程序并从内存中清除所有应用程序吗?
答案 0 :(得分:2)
调用System.exit()是个坏主意。你可以简单地在你需要杀死的所有活动上调用finish()。这是一个很好的解决方案: https://stackoverflow.com/a/5453228/1369222
基本的想法是为你的应用程序的每个活动添加一个广播接收器,当特定的“杀死活动”意图被触发时,它将自动完成。
答案 1 :(得分:1)
Android在应用中没有一个入口点。你应该按照指南设计。链接:http://developer.android.com/design/patterns/navigation.html
我可以创建一个退出Android应用程序的按钮并从内存中清除所有应用程序吗?
不。你应该从堆栈中删除所有活动(例如使用finish())。
答案 2 :(得分:1)
调用finish()只会退出当前活动,而不是整个应用程序。但是,有一个解决方法:
每次启动Activity时,使用startActivityForResult(...)启动它。当您想要关闭整个应用时,您可以执行以下操作:
setResult(RESULT_CLOSE_ALL);
finish();
然后定义每个活动的onActivityResult(...)回调,这样当一个活动返回RESULT_CLOSE_ALL值时,它也会调用finish():
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(resultCode)
{
case RESULT_CLOSE_ALL:
setResult(RESULT_CLOSE_ALL);
finish();
}
super.onActivityResult(requestCode, resultCode, data);
}
这将导致级联效应关闭所有活动。
答案 3 :(得分:0)
请勿致电System.exit(0)
。
通过commonsware检查答案
Is quitting an application frowned upon?
您可以使用操作栏。单击应用程序图标导航到应用程序的主屏幕,然后单击主屏幕中的后退按钮退出应用程序。
http://developer.android.com/guide/topics/ui/actionbar.html
检查以下链接,清楚地显示带有屏幕截图的导航。
http://developer.android.com/design/patterns/navigation.html
答案 4 :(得分:-1)
System.exit(0)
不是更好的方法。相反,在所有活动中调用finish()
,activity
将从堆栈中删除。