如何杀死android Marshmallow中当前正在运行的任务

时间:2017-04-14 13:17:53

标签: android memory task ram kill-process

我正试图找到如何杀死当前任务在android Marshmallow我已经有两种方法,但两者在Android 4.0.3和Android 5.0.1工作正常,但当我尝试在Android 6.0.1她没有'解决这个问题的任何想法!,

List<ApplicationInfo> packages;
            PackageManager pm;
            pm = getPackageManager();
            //get a list of installed apps.
            packages = pm.getInstalledApplications(0);
            ActivityManager mActivityManager = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
            String myPackage = getApplicationContext().getPackageName();
            for (ApplicationInfo packageInfo : packages) {
                if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue;
                if(packageInfo.packageName.equals(myPackage)) continue;
                mActivityManager.killBackgroundProcesses(packageInfo.packageName);
            }

和这个方法:

ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
            for (ActivityManager.RunningAppProcessInfo pid : am.getRunningAppProcesses()) {
                am.killBackgroundProcesses(pid.processName);
            }

1 个答案:

答案 0 :(得分:0)

尝试在第二种方法中使用它。

android.os.Process.killProcess(pid);

使用给定的PID终止进程。请注意,尽管此API允许我们根据其PID请求终止任何进程,但内核仍将对您实际可以杀死的PID施加标准限制。通常,这意味着只有运行调用者程序包/应用程序的进程以及该应用程序创建的任何其他进程;共享一个共同UID的软件包也可以杀死彼此的进程。 取自here

我还建议您使用

获取应用程序ID
android.os.Process.myPid();