android - 如何以编程方式终止 Oreo 中的后台任务?
问题描述
我正在构建一个移动应用程序,我想实现一个功能,我可以通过在 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");
}
}
它只显示我的应用程序自己的任务,但不显示其他正在运行的任务
解决方案
Android 5.0+ 杀死了 getRunningTasks(int) 和 getRunningAppProcesses()。这两种方法现在都已弃用,仅返回您的应用程序进程。您可以使用 UsageStatsManager 获取正在运行的应用程序列表。检查这个例子:https ://github.com/googlesamples/android-AppUsageStatistics
推荐阅读
- sql - 创建一个新视图从多个表中提取但不断收到“缺少关键字”错误
- angularjs - ngView 是否受嵌套的 ngController 影响?
- tensorflow - TensorFlow 中 tf.while_loop 并行参数的解释
- tensorflow - 喀拉斯。如何更改模型以使其不使用嵌入层
- android - Android:在每个循环迭代中等待,直到我从每个循环迭代内开始的活动返回
- node.js - 使用 node.js 生成 Faker 数据
- angular - 多次调用 Angular EventEmitter
- jupyter-notebook - 如何在 Google colab 中使用变量检查器?
- c# - 表更新 Visual Studio 2017
- json - 如何在 React 中读取嵌套的 JSON?