我可以像这样终止我的申请:
android.os.Process.killProcess(android.os.Process.myPid());
我如何终止任何应用程序(或只有那些允许这样做的应用程序),就像按钮App Info -> Force stop
那样?
答案 0 :(得分:1)
首先,您无法终止应用程序尚未创建的进程。对于应用程序启动的进程,您可以使用
终止它们public static final void killProcess (int pid)
如果你想杀死后台进程,你可以做
public void killBackgroundProcesses (String packageName)
但是你需要KILL_BACKGROUND_PROCESSES
的许可。
AFAIK这只会杀死进程,但它不会杀死内存中的任务。因此,当应用程序重新启动时,活动堆栈/任务将从上次重新创建,除非系统本身将其用于释放资源。
所以AFAIK你永远无法以编程方式获得与App Info -> Force stop
相同的效果,因为无法清除内存中的任务,只有系统可以做到这一点。
答案 1 :(得分:1)
您可以使用该代码获取Application PID。
/**
* Gets the process pid.
*
* @param processName the process name
* @return the process pid
*/
public static int getProcessPid(String processName, Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.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(processName)) {
result = procInfo.pid;
break;
}
}
return result;
}