我想杀死其他应用程序,我已经用Google搜索并在stackoverflow上看到其他答案,但没有得到满意的答案。在这里,我试图杀死浏览应用程序(用于测试)。我想要做的是,我想使用包名杀死应用程序。
Log.d("Process", "in intent");
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> pids = am.getRunningAppProcesses();
int processid = 0;
Log.d("Process",String.valueOf(pids.size()) );
for(int i = 0; i < pids.size(); i++)
{
//Toast.makeText(getApplicationContext(),"on if", Toast.LENGTH_SHORT).show();
ActivityManager.RunningAppProcessInfo info = pids.get(i);
if(info.processName.equalsIgnoreCase("com.android.browser")){
Log.d("Process", "in if");
//Toast.makeText(getApplicationContext(),"in if", Toast.LENGTH_SHORT).show();
processid = info.pid;
Log.d("Process",String.valueOf(processid) );
android.os.Process.sendSignal(pids.get(i).pid, android.os.Process.SIGNAL_KILL);
android.os.Process.killProcess(processid);
}
}
这是我的代码可以有人帮帮我吗?我错过了什么?
logcat中的我正在发送信号。 PID:1524 SIG:9
答案 0 :(得分:2)
首先阅读,重要提示:您只能终止与正在执行查杀的用户ID相同的进程。如果你试图杀死你自己的进程它应该工作。否则你不能这样做(除非你有一个root设备,你的应用程序有root权限)。
您需要使用ActivityManager
:有关流程信息,请参阅http://developer.android.com/reference/android/app/ActivityManager.RunningAppProcessInfo.html。
你可以:
获得PID
时:
android.os.Process.killProcess(PID);