-1

我想获取最近的任务列表。

我使用以下代码,但是当我尝试获取 origActivity 信息时,origActivity 始终为空:

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

我想知道列表中所有活动的应用程序标签、包名和活动名。

了解这些元素的唯一方法是使用 RecentTaskInfo 中的 origActivity,但它始终为空(我得到 NullPOinterException)。

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

有没有办法知道所有最近任务的应用程序标签、包名称和活动名称?

4

3 回答 3

1

要获取所有包名和类名,请使用基本意图变量。下面的示例取自 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))
于 2014-04-17T09:11:11.540 回答
-1

您必须持有此权限
GET_TASKS

于 2014-02-09T19:10:59.087 回答
-1

我使用此代码来初始化活动管理器

     activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

你为什么不使用

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

从这里你可以得到你想要的所有信息,并且列表根据最近的任务进行排序。意味着最近使用的任务位于顶部,您可以获得尽可能多的最近任务
并获得应用程序标签

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

try {
    ai=pm.getApplicationInfo(processName, 0);
    name=(String) pm.getApplicationLabel(ai);
}
于 2012-12-16T21:19:10.047 回答