2

我想停止或关闭在 android 后台运行的应用程序。可能吗?如果是这样如何实现这一点。参考任何链接将不胜感激。

提前致谢..

4

1 回答 1

14

您可以使用Process.killProcess(int pid)终止与您的应用程序具有相同 UID 的进程。您可以ActivityManager.killBackgroundProcesses(String packageName),with KILL_BACKGROUND_PROCESSES在清单中使用权限(对于 API >= 8)或ActivityManager.restartPackage (String packageName)(对于 API < 8)来杀死指定的进程,除了前台进程。

所以如果你想在你的程序是前台进程时杀死所有其他进程,你会使用ActivityManager.killBackgroundProcessesor 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);
   }   

在上面的代码片段中,每个进程都将被杀死,除非它是您的应用程序或系统进程的进程。

于 2014-05-29T06:52:39.053 回答