我想获得最近的任务列表。
我使用以下代码,但是当我尝试获取origActivity信息时,origActivity始终为null:
ActivityManager activityManager = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE);
List<RecentTaskInfo> recentTasks = activityManager.getRecentTasks(8,0);
我想知道列表中所有活动的应用程序标签,包名称和活动名称。
了解这些元素的唯一方法是使用RecentTaskInfo中的origActivity,但它始终为null(我得到一个NullPOinterException)。
我能获得的唯一信息是活动ID。
有一种方法可以了解所有近期任务的应用程序标签,包名称和活动名称吗?
答案 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