2012-12-16 28 views
-1

我想爲最近的任務列表。Android:如何獲取最近的任務列表和origActivity?

我用下面的代碼,但是當我試圖讓origActivity信息,origActivity始終爲空:

ActivityManager activityManager = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE); 
List<RecentTaskInfo> recentTasks = activityManager.getRecentTasks(8,0); 

我想知道應用程序標籤,包裝名稱和活動名稱列表中的所有活動。

知道這些元素的唯一方法是使用origActivity從RecentTaskInfo但它始終是空(我得到一個NullPointerException)。

,我能得到的唯一信息是活動ID。

有辦法知道應用程序標籤,包裝名稱和活動名稱最近所有的任務?

+0

的可能的複製[獲取最近的和運行的應用程序列表中未過程(http://stackoverflow.com/questions/12376646/get-recent-and-running-application-list-not-processes) –

回答

-1

我用這個代碼initialze acitivty經理

 activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 

和你爲什麼不使用

 List<RunningAppProcessInfo> rpinfo= activityManager.getRunningAppProcesses(); 

從這個U可以得到所有你想要 信息和列表根據排序最近的任務。意味着最後使用的任務是在頂部 到u可以得到近儘可能多的任務,你想
並獲得了應用標籤

PackageManager pm=getApplicationContext().getPackageManager(); 
ApplicationInfo ai; 

try { 
    ai=pm.getApplicationInfo(processName, 0); 
    name=(String) pm.getApplicationLabel(ai); 
} 
+0

許多感謝你的回答。我知道getRunningTasks,但我希望最近的任務不在運行。 – Meroelyth

+0

通過這個 http://developer.android.com/reference/android/app/ActivityManager.html#getRunningTasks(int) –

+0

「的名單是根據近期的任務排序」這是不幸的是不正確的。由於API中陳述出來,沒有指定的排序和大量的設備將*不*與近期在頂部的順序列表。 – JacksOnF1re

-1

你必須持有此權限
GET_TASKS

+0

OP已經得到活動ID,我假設他/她已經擁有許可。 – JacksOnF1re

1

要獲取所有包名和類名,請使用base intent變量。下面的例子來自AdapterView的getView()函數。

final ActivityManager.RecentTaskInfo temp = this.getItem(position); 
final String packagename = temp.baseIntent.getComponent().getPackageName(); 
final String label = getPackageManager().getApplicationLabel(getPackageManager().getApplicationInfo(packagename, PackageManager.GET_META_DATA)) 
相關問題