0

我是android的初学者。当我单击按钮KILL 选定应用程序以关闭或终止特定(运行)应用程序或选定应用程序时。我知道这是可能的。但是如何解决它。我的示例 UI 是
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());

请回复您的答案和意见对我很有价值。谢谢。

4

2 回答 2

1

我知道这是可能的。

虽然不是你的意愿。

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

文档中有关此方法的注释:

请注意,尽管此 API 允许我们根据其 PID 请求终止任何进程,但内核仍会对您实际能够终止的 PID 施加标准限制。通常这意味着仅运行调用者的包/应用程序的进程以及该应用程序创建的任何其他进程;共享一个公共 UID 的包也将能够杀死彼此的进程。

关于system.exit(0),阅读这个答案。记住这一点。

关于finish()文档清楚地说明了以下内容:

"当您的活动完成并应该关闭时调用它。 "

总而言之——不要试图成为任务杀手。android 操作系统很好地处理了这一点。不要插手。

轮子已经被发明出来并且正在被完美地使用,不要重新发明它。

请阅读。您需要了解Android 不需要任务杀手。谷歌它,你会发现很多这样的文章。

于 2012-06-12T06:23:41.387 回答
0

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

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

restartPackage 是 killProcess 方法的包装。

使用以下权限来使用 restartPackage 方法

<uses-permission android:name="android.permission.RESTART_PACKAGES" /> 
于 2012-06-12T06:34:27.477 回答