2013-01-21 113 views
0

目前,我只能拿的近期任務的ID,如下圖所示:如何從RecentTaskInfo獲取應用程序信息?

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

http://stackoverflow.com/questions/5804391/android-development-find-get-recently-used-apps – ridoy

回答

2

-1表示該任務當前沒有運行。

您可以使用recentTaskInfo.baseIntent獲取用於啓動任務的Intent,然後例如,使用intent. getComponent().getPackageName()獲取軟件包名稱。

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; 
} 
} 
相關問題