如何破坏Android应用程序并从内存中清除?

时间:2013-06-26 06:32:27

标签: android

我尝试过System.Exit(0),但这不是我需要的;

我正在尝试安全地销毁Android应用程序并从内存中清除它,
我可以创建一个按钮来退出Android应用程序并从内存中清除所有应用程序吗?

5 个答案:

答案 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将从堆栈中删除。