Очистить недавние задачи в Android P

 @RequiresApi(api = Build.VERSION_CODES.M)
    public static void clearRecentApps() {
        ActivityManager mActivityManager;
        Method mRemoveTask;
        try {
            Class<?> ActivityThread = Class.forName("android.app.ActivityThread");
            Method method = ActivityThread.getMethod("currentActivityThread");
            Object currentActivityThread = method.invoke(ActivityThread);
            Method method2 = currentActivityThread.getClass().getMethod("getApplication");
            Context contextInstance = (Context) method2.invoke(currentActivityThread);
            Class<?> activityManagerClass = Class.forName("android.app.ActivityManager");
            mActivityManager = (ActivityManager) contextInstance.getSystemService(Context.ACTIVITY_SERVICE);
            print("Clear all recent tasks!!");
            mRemoveTask = activityManagerClass.getMethod("removeTask", int.class);
            mRemoveTask.setAccessible(true);
            List<ActivityManager.RecentTaskInfo> recents =
                    mActivityManager.getRecentTasks(Integer.MAX_VALUE, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
            for (ActivityManager.RecentTaskInfo recent: recents) {
                ComponentName cn = recent.baseActivity;
                if (cn == null) continue;
                String pkg = cn.getPackageName();
                if (pkg.contains("launcher")) continue;
                print("--> Clear activity \"%s\"", pkg);
                mRemoveTask.invoke(mActivityManager, recent.persistentId);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Этот метод работал до Android P, но до Android P нет. Я просмотрел исходный код Android P, класс activitymanager удалил API removeTask, поэтому я хочу знать, что есть другая альтернатива? я попробовал «Список appTasks = mActivityManager.getAppTasks ();»

ActivityManager.getService().removeTask(taskId);
Eugen Pechanec 23.04.2019 11:45
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
309
0

Другие вопросы по теме