Как программно убить фоновые задачи в Oreo? - PullRequest
1 голос
/ 30 мая 2019

Я создаю мобильное приложение и хотел бы реализовать функциональность, позволяющую очищать оперативную память, убивая фоновые задачи в Android Oreo (что-то похожее на CCleaner).

Я попробовал алгоритм, который нашел на GitHub.Но, похоже, он работает только с Android 5.0

 protected void populateTextViewWithRunningProcesses() {
        // Empty the TextView
        mTextView.setText("");

        // Initialize a new instance of ActivityManager
        ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

        // Get a list of RunningAppProcessInfo
        List<AndroidAppProcess> processes = AndroidProcesses.getRunningAppProcesses();

        // Display the number of running processes
        Toast.makeText(mContext, "Running processes : " +
                runningProcesses.size(), Toast.LENGTH_SHORT).show();

        // Loop through the running processes
        for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
            // Get the process name
            mTextView.setText(mTextView.getText() + processInfo.processName + "\n");
        }
    }

Он показывает только собственные задачи моего приложения, но не другие запущенные задачи

1 Ответ

4 голосов
/ 30 мая 2019

Android 5.0+ убил getRunningTasks (int) и getRunningAppProcesses (). Оба эти метода теперь устарели и возвращают только ваш процесс приложения. Вы можете получить список запущенных приложений, используя UsageStatsManager. Проверьте этот пример: https://github.com/googlesamples/android-AppUsageStatistics

...