我是android的初学者。当我单击按钮 KILL选择的应用以关闭或终止特定(正在运行)的应用程序或所选应用程序时。我知道这是可能的。但是如何解决它。我的示例用户界面是http://answers.oreilly.com/index.php?app=core&module=attach§ion=attach&attach_rel_module=post&attach_id=555我试图使用一些代码。但是所有代码都可以用于仅关闭活动。未封闭的申请。我可以尝试引用一些stackoverflow答案。但我不清楚任何事情。我的代码是
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());
请回复您的答案,评论对我有价值。感谢。
答案 0 :(得分:1)
我知道这是可能的。
虽然不符合您的意愿。
android.os.Process.killProcess(android.os.Process.myPid());
documentation关于此方法的说明:
请注意,尽管此API允许我们根据其PID请求终止任何进程,内核仍会对您实际可以杀死的PID 施加标准限制。通常,这意味着只有运行调用者的包/应用程序的进程以及该应用程序创建的任何其他进程;共享一个共同UID的软件包也可以杀死彼此的进程。
关于system.exit(0)
,请阅读this回答。并记住这一点。
关于finish()
,documentation清楚地说明了以下内容:
“在您的活动完成后调用此选项并应关闭。”
总结一下 - 不要试图制造任务杀手。 Android操作系统完美地处理了这一点。不要干涉它。
车轮已经发明并且使用得很完美,不要重新发明它。
请阅读this。您需要了解 Android不需要任务杀手。谷歌,你会发现很多这样的文章。
答案 1 :(得分:0)
使用restart应用程序而不是killProcess
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage("YOUR_PACKAGE_NAME");
restartPackage是killProcess方法的包装器。
使用以下权限使用restartPackage方法
<uses-permission android:name="android.permission.RESTART_PACKAGES" />