我试了两种方法:ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> procList = null;
int result=-1;
procList = activityManager.getRunningAppProcesses();
for (Iterator<RunningAppProcessInfo> iterator = procList.iterator(); iterator.hasNext();) {
RunningAppProcessInfo procInfo = iterator.next();
if(procInfo.processName.equals("com.android.phone")) {
try {
//activityManager.restartPackage(procInfo.processName);
activityManager.killBackgroundProcesses(procInfo.processName);
} catch (Exception e){
}
break;
}
}以及try {
java.lang.Process process = Runtime.getRuntime().exec("kill -9 " + phoneId);
// Waits for the command to finish.
process.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
两种方法都没能成功的kill 掉 phone.请问这是为什么呢?难道phone不允许被kill? 进adb shell 可以kill的呀。
List<RunningAppProcessInfo> procList = null;
int result=-1;
procList = activityManager.getRunningAppProcesses();
for (Iterator<RunningAppProcessInfo> iterator = procList.iterator(); iterator.hasNext();) {
RunningAppProcessInfo procInfo = iterator.next();
if(procInfo.processName.equals("com.android.phone")) {
try {
//activityManager.restartPackage(procInfo.processName);
activityManager.killBackgroundProcesses(procInfo.processName);
} catch (Exception e){
}
break;
}
}以及try {
java.lang.Process process = Runtime.getRuntime().exec("kill -9 " + phoneId);
// Waits for the command to finish.
process.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
两种方法都没能成功的kill 掉 phone.请问这是为什么呢?难道phone不允许被kill? 进adb shell 可以kill的呀。
关闭应用程序
我的目的是类似任务管理器那样,去kill phone进程和其他进程, 你这个方法只能是在phone进程中kill itself.应该行不通的吧。
我第一种方法killBackgroundProcesses也是无法执行成功,点击结束进程,没有异常,但是进程还是在运行列表中。
第二种方法,获得了进程pid之后,在adb中用kill -9 pid,可以结束进程,在进程列表中看不到了,但用你说的代码,还是没有异常,也无法结束进程,请指点一下
谢谢