我想获取在 android 中运行的所有任务。我在 ActivityManager 中找到了 getRunningTasks,但从 android-5.0 开始,getRunningTasks 可能不会提供所有任务(在我的情况下,它提供主屏幕和我的应用程序)。
此外,是否可以找到用户当前正在交互的任务?
任何帮助将不胜感激。
Thanks.
Edit:我正在使用下面的一段代码。但它只给了我一个进程(那就是我的应用程序)。即使我打开其他应用程序,它也不会显示它们。我在一加2上运行它。
@Override
protected void onHandleIntent(Intent intent) {
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
getRunningApps();
}
}, 0, 1000);//put here time 1000 milliseconds=1 second
}
public void getRunningApps() {
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<ActivityManager.RunningAppProcessInfo> recentTasks = activityManager.getRunningAppProcesses();
for (int i = 0; i < recentTasks.size(); i++)
{
Log.d("Executed app", "Application executed : " +recentTasks.get(i).pkgList[0]+ "\t\t ID: "+recentTasks.get(i).pid+"");
}
}
Use getRunningAppProcesses
,这将返回一个列表RunningAppProcessInfo
将为您提供有关每个正在运行的应用程序的一些数据的对象。您可以检索的有关该应用程序的信息之一是它的importance
,它可以有一个值IMPORTANCE_FOREGROUND
这表明该进程是当前活动的应用程序!
相关文档:
获取正在运行的应用程序进程
运行应用程序进程信息
重要性_前景
如果这对您有帮助,请随时按向左的箭头:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)