是否有可能以编程方式关闭在android中运行的应用程序?

时间:2014-05-29 06:49:41

标签: android background-process close-application

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

提前致谢..

1 个答案:

答案 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.killBackgroundProcessesActivityManager.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);
   }   

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