如何从RecentTaskInfo获取应用信息?

时间:2013-01-21 17:55:17

标签: android

目前,我只能获取最近任务的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。这是什么意思?我们可以获得这些任务的信息吗?

2 个答案:

答案 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;
}
}