6

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

我正在尝试安全地销毁 android 应用程序并将其从内存中清除,
我可以制作一个按钮来退出 android 应用程序并从内存中清除所有应用程序吗?

4

5 回答 5

2

调用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);
}

这将导致关闭所有活动的级联效应。

于 2013-06-26T06:47:41.283 回答
2

调用 System.exit() 是个坏主意。你可以简单地对你需要杀死的所有活动调用finish()。这是一个很好的解决方案: https ://stackoverflow.com/a/5453228/1369222

基本思想是为应用程序的每个活动添加一个广播接收器,当触发特定的“终止活动”意图时,该接收器将自行完成。

于 2013-06-26T06:37:08.700 回答
1

Android 在应用程序中没有一个入口点。您应该根据指南进行设计。链接:http: //developer.android.com/design/patterns/navigation.html

我可以制作一个按钮来退出 android 应用程序并从内存中清除所有应用程序吗?

不,您应该从堆栈中删除所有活动(例如使用完成())。

于 2013-06-26T06:40:08.950 回答
0

不要打电话System.exit(0)

通过 commonsware 检查答案

退出应用程序不受欢迎吗?.

您可以使用操作栏。单击应用程序图标导航到应用程序的主屏幕,然后单击主屏幕中的后退按钮以退出应用程序。

http://developer.android.com/guide/topics/ui/actionbar.html

检查下面的链接清楚地显示带有屏幕截图的导航。

http://developer.android.com/design/patterns/navigation.html

于 2013-06-26T06:37:24.513 回答
-1

System.exit(0)不是更好的方法。相反,调用finish()所有活动,activity并将从堆栈中删除。

于 2013-06-26T06:34:08.487 回答