Android 怎么退出整个应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 怎么退出整个应用程序相关的知识,希望对你有一定的参考价值。

android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。
Android中,退出应用程序的方式:
通过pid
int pid = android.os.Process.myPid(); //获取当前应用程序的PID
android.os.Process.killProcess(pid); //杀死当前进程
这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。

2.通过ActivityManager
ActivityManager manager = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE); //获取应用程序管理器
manager.killBackgroundProcesses(getPackageName()); //强制结束当前应用程序
这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。
参考技术A 在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。
Android中,退出应用程序的方式:
通过pid
int pid = android.os.Process.myPid(); //获取当前应用程序的PID
android.os.Process.killProcess(pid); //杀死当前进程
这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。

2.通过ActivityManager
ActivityManager manager = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE); //获取应用程序管理器
manager.killBackgroundProcesses(getPackageName()); //强制结束当前应用程序
这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。
参考技术B 大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。

使用全局变量。对了,第一个想到的就是继承 Application,代码入下。
public class AgentApplication extends Application private List<Activity> activities = new ArrayList<Activity>(); public void addActivity(Activity activity) activities.add(activity); @Overridepublic void onTerminate() super.onTerminate();for (Activity activity : activities) activity.finish();onDestroy();System.exit(0);
然后在 Activity onCreate 的时候来调用 addActivity (),有人可能想到这个Application需要在所有的 Activity onCreate的时候都使用,需要做一个单例实例。其实根本不需要。在 Activity 中使用 this.getApplication() 就可以了。

最后在你需要推出程序的地方调用 application.onTerminate() 就可以了。记住:super.onTerminate() 必须调用,代码中的 onDestroy()是我自己的释放其他资源的方法,不是系统的。

运行以上代码后,在LogCat 中会出现一行提示:
Process 包名 (pid xxxxx) has died. 证明你的程序退出了。现在你可以测试了。

Android 应用程序退出后,怎么才能不在最近运行列表中显示?

使应用信息不在运行列表中显示的方法需要修改配置文件中activity标签的两个值
<span style="font-size:14px;">android:noHistory="true"
android:excludeFromRecents="true"></span>
将这两个值置为true
android:noHistory
这个属性用于设置在用户离开该Activity,并且它在屏幕上不再可见的时候,它是否应该从Activity的堆栈被删除。如果设置了true,则要删除,否则不删除。默认值是false。
如果设置为true,则意味着Activity不会保留历史轨迹。也就是说,它不会保留在任务的Activity堆栈中,因此用户不能够在返回到这个Activity。 这个属性在API Level 3中被引入。
android:excledeFromRecents
这属性用于设置由该 Activity所启动的任务是否应该被排除在最近使用的应用程序列表之外。也就是说,当这个 Activity是一个新任务的根节点时,这个属性决定了这个任务适应要显示在用户最近使用的应用程序列表中。如果设置为 true,则这个任务会被排除在列表之外,如何设置为 false,则应该包含在最近使用的应用列表中。默认值是 false。追问

复制?

看过了,不知道具体怎么操作

追答

呃......我试过,好像只能直接删............

追问

具体步骤呢

追答

长按主页,清理

参考技术A 如要一直不显示,那是没办法,要是马上消失,左键有 参考技术B 小明欠 参考技术C 长按主页键,点清理 参考技术D 一定会显示的追答

你可以清除,就没了

以上是关于Android 怎么退出整个应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Android 怎么退出整个应用程序

Flutter:退出应用

android怎样点击两下退出程序

Android-ActivityManager 退出整个应用

Android App 退出整个应用

Android中再按一次退出和完美退出整个应用程序