目前,我只能获取最近任务的ID,如下所示:
final List<RecentTaskInfo> recentTasks = activityManager.getRecentTasks(Integer.MAX_VALUE, 1);
for (int i = 0; i < recentTasks.size(); i++)
{
System.out.println(""+recentTasks.get(i).id);
}
但如何获取其他信息?比如package_name,main_activity等等?
我还发现一些ID为-1
。这是什么意思?我们可以获得这些任务的信息吗?
答案 0 :(得分:2)
-1
表示任务当前未运行。
您可以使用recentTaskInfo.baseIntent
获取用于启动任务的Intent
,例如使用intent. getComponent().getPackageName()
获取包名称。
答案 1 :(得分:1)
在这里,我使用此代码将运行的应用程序从后台运行到前台。 我希望这能帮到你......
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<RecentTaskInfo> recentTasks = activityManager.getRecentTasks(Integer.MAX_VALUE, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
RecentTaskInfo recentTaskInfo = null;
for (int i = 0; i < recentTasks.size(); i++)
{
if (recentTasks.get(i).baseIntent.getComponent().getPackageName().equals(packageName)) {
recentTaskInfo = recentTasks.get(i);
break;
}
}
if(recentTaskInfo != null && recentTaskInfo.id > -1) {
activityManager.moveTaskToFront(recentTaskInfo.persistentId, ActivityManager.MOVE_TASK_WITH_HOME);
return;
}
}