kill process方法确实会终止进程,但为什么进程会再次重新启动,以及如果不重新启动进程,该怎么办。这是我的密码。
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> services = manager.getRunningAppProcesses();
for (RunningAppProcessInfo info : services) {
int service1name = info.pid;
android.os.Process.killProcess(service1name);
}
谢谢你的关心。
最佳答案
实际上,进程通过kill process终止了进程重新启动,因为android操作系统假设进程由于崩溃而关闭,然后再次重新启动。我发现我们可以使用更高优先级的AM(活动管理器)来终止进程。示例如下:
try {
Log.d("Application all process", "killing++");
String killCommand =
"am force-stop com.nil.android.ssd";
runAsRoot(new String[]{killCommand},true);
} catch (Exception e) {
e.printStackTrace();
}
public static void runAsRoot(String[] cmds, boolean shouldExit) {
try {
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
for (String tmpCmd : cmds) {
os.writeBytes(tmpCmd + "\n");
}
if (shouldExit) {
os.writeBytes("exit\n");
}
os.flush();
} catch (Exception iOException) {
iOException.printStackTrace();
}
}