Android:如何获取最近的任务列表和origActivity?

时间:2012-12-16 21:04:42

标签: android task activity-manager

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

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

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

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

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

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

有一种方法可以了解所有近期任务的应用程序标签,包名称和活动名称吗?

3 个答案:

答案 0 :(得分: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))

答案 1 :(得分:-1)

我使用此代码初始化acitivty manager

     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);
}

答案 2 :(得分:-1)

您必须持有此许可 GET_TASKS