如何关闭整个应用程序?(How to close entire application?)

2019-07-29 20:53发布

我在Android的初学者。 当我点击一个按钮KILL选择的应用程序关闭或杀死特定的(运行)应用程序或所选应用程序。 我知道这是可能的。 但是,如何制定出它。 我的样本UI是
http://answers.oreilly.com/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=555
我尝试使用一些代码。 但是,所有的代码只能用于关闭了活动。 没有关闭应用程序。 我可以试着参考一些计算器的答案。 但我并不清楚什么都不懂。 我的代码

finish();
System.exit(0);
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
android.os.Process.killProcess(android.os.Process.myPid());

请回复您的答案和建议是宝贵的我。 谢谢。

Answer 1:

我知道这是可能的。

不是你的意志,虽然。

android.os.Process.killProcess(android.os.Process.myPid());

从A笔记文档有关此方法:

需要注意的是,虽然该API允许我们要求杀死基于其PID任何进程, 内核仍然会强加给它的PID你实际上能杀死标准的限制 通常,这意味着仅在运行呼叫者的包/应用和由该应用创建的任何其他进程的进程; 包共享一个共同的UID也将能够杀死对方的过程。

关于system.exit(0)阅读这个答案。 并保持在你的心中。

而关于finish()该文件明确指出以下几点:

当你的活动完成,应关闭调用此。”

总之这一切 - 不要试图做一个任务的杀手。 Android操作系统需要照顾的是非常清楚。 不要被扎。

该轮已经发明并正在使用完全,不彻底改造它。

请阅读此 。 你要明白,Android不需要安装任务杀手 。 谷歌它,你会发现很多这样的文章。



Answer 2:

使用重新启动应用程序而不是killProcess

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage("YOUR_PACKAGE_NAME");

restartPackage是killProcess方法的包装。

使用下面使用restartPackage方法允许

<uses-permission android:name="android.permission.RESTART_PACKAGES" /> 


文章来源: How to close entire application?