【问题标题】:How to kill currently running task in android Marshmallow如何在 android Marshmallow 中杀死当前正在运行的任务
【发布时间】:2017-09-10 18:15:57
【问题描述】:

我正在尝试找到如何在 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);
            }

【问题讨论】:

    标签: android memory task ram kill-process


    【解决方案1】:

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

    android.os.Process.killProcess(pid);
    

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

    我还建议使用

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

    【讨论】:

    • 已编辑描述
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多