【问题标题】:How to exit selected running applications using process id如何使用进程 ID 退出选定的正在运行的应用程序
【发布时间】:2014-03-09 08:33:02
【问题描述】:

我正在使用此代码来停止在安卓手机中选择的正在运行的应用程序:

Button view = (Button)findViewById(R.id.button1);
view.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){

String appname = getIntent().getExtras().getString("appname");
String pname=appname.split("\n")[3];
int id=Integer.parseInt(pname);
finish();
android.os.Process.killProcess(id);

ID 是正确的,但此代码不起作用...有什么帮助吗? 是否有任何其他代码可以通过使用它们的 id 来杀死进程??

【问题讨论】:

  • 问题出在 android.os.Process.killProcess(id);我需要为这个...
  • 尝试在killProcess之后完成
  • 你撞车了?还是直接关闭而不杀?
  • 关闭而不杀死......
  • 我有包名、应用程序名、id 请告诉我任何方法使用这些中的任何一个来停止选择

标签: android


【解决方案1】:

你可以使用

ActivityManager manager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> services = manager.getRunningAppProcesses();
String service1name = service[1].processName;

你可以得到所有正在运行的进程的包名,检查你想杀死哪个,选择那个

process get process id by service.pid.

然后打电话

android.os.Process.killProcess(service.pid);

【讨论】:

  • 我认为他需要杀死其他进程而不是他的进程。
  • 我不想停止这个正在运行的应用程序对接使用此应用程序选择的应用程序...任何其他应用程序
  • 我用 toast 来检查我是否正确获取了 id...id 是正确的...但是这个 kill process 方法不会杀死所选的应用程序
  • service.pid中的服务是什么??/
【解决方案2】:

如果您查看Android API for Kill Process,它会显示以下内容:

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

这意味着您无法杀死除您的应用包所在的应用之外的其他应用。

这个答案解释了为什么会这样以及它是如何工作的:https://stackoverflow.com/a/7560009/1306012

【讨论】:

  • 你的意思是我不能阻止其他应用使用我的应用?
  • 不,作为第三方开发者,您不会对其他开发者的应用程序恶意,无论他们是否是“应得的”恼人软件。跨度>
【解决方案3】:

你需要你想要杀死的应用程序的包名(例如com.facebook.katana)然后调用

ActivityManager.killBackgroundProcesses(packageName);
//for example: kill the facebook app
//ActivityManager.killBackgroundProcesses("com.facebook.katana);

但是,您需要在清单中定义的权限KILL_BACKGROUND_PROCESSES

【讨论】:

  • 当然可以。见这里:developer.android.com/reference/android/…
  • killBackground 进程不会杀死应用程序的 mainActivity...它只退出一些后台进程..我试过这个它没有退出应用程序..例如我打开 adobe 阅读器...然后没有关闭它启动停止现有正在运行的进程的应用程序...我选择 adobe 并使用“killbackground 进程”停止它并再次检查...但 adobe 阅读器仍然没有关闭..实际上我想停止它..跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
相关资源
最近更新 更多