Как я могу убить удаленный процесс для моего приложения?
Наше приложение использует этот метод для уничтожения удаленного процесса; но можно ли использовать любой другой план? Мне это нужно, потому что getRunningAppProcesses()
может не работать
public void killChildProcess() {
ActivityManager actvityManager = (ActivityManager)this.getSystemService( Context.ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();
for(RunningAppProcessInfo procInfo : procInfos) {
if (procInfo.processName != null &&
procInfo.processName.equals("package:remote")) {
Process.killProcess(procInfo.pid);
}
}
}
1 ответ
Убедитесь, что имя процесса содержит :remote
тогда вперед.
@Override
public void killRemoteProcess() {
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo appProcessInfo: runningAppProcesses) {
if (appProcessInfo.processName.contains(getApplicationInfo().processName + ":remote")) {
Log.d("Killing active process: " + getApplicationInfo().processName + ":remote");
android.os.Process.killProcess(appProcessInfo.pid);
}
}
}
Как предложено @Matt Clark, вы можете сделать это
Long PID=Runtime.getRuntime()
.exec("ps -ef|grep 'package:remote'| awk '{ if(NR==2) print ($2)}'")
Runtime.getRuntime.exec("kill -9 "+PID);