我想停止或关闭在android中运行在后台的应用程序。可能吗?如果是这样,如何实现这一点。请参阅任何链接将不胜感激。
提前致谢..
答案 0 :(得分:10)
您可以使用Process.killProcess(int pid)
来杀死与您的应用具有相同UID的进程。
您可以在清单中使用ActivityManager.killBackgroundProcesses(String packageName),with KILL_BACKGROUND_PROCESSES
权限(对于API> = 8)或ActivityManager.restartPackage (String packageName)
(对于API< 8)来杀死指定的进程,但forground进程除外。
因此,如果您在程序处于前台进程时要杀死所有其他进程,则可以使用ActivityManager.killBackgroundProcesses
或ActivityManager.restartPackage
:
List<ApplicationInfo> packages;
PackageManager pm;
pm = getPackageManager();
//get a list of installed apps.
packages = pm.getInstalledApplications(0);
ActivityManager mActivityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
for (ApplicationInfo packageInfo : packages) {
if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue;
if(packageInfo.packageName.equals("mypackage")) continue;
mActivityManager.killBackgroundProcesses(packageInfo.packageName);
}
在上面的代码段中,每个进程都将被终止,除非它是您的应用程序或系统进程的进程。