当我长按手机上的主页按钮时,我可以看到我最近启动的活动列表。当我开始另一个活动时,Android 会缓存/暂停旧活动。
我想获取最近启动的活动列表,但我似乎无法弄清楚如何。我翻阅了 StackOverflow 和 Android SDK 文档,ActivityManager
并提出了以下两个片段:
ActivityManager mgrActivity = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
System.out.println("getRunningTasks: " + mgrActivity.getRunningTasks(Integer.MAX_VALUE).size());
System.out.println("getRecentTasks: " + mgrActivity.getRecentTasks(Integer.MAX_VALUE, ActivityManager.RECENT_WITH_EXCLUDED).size());
这些都没有显示我最近启动的活动的正确数量。这两个调用返回的值都大于我长按主页按钮时显示的活动数。谁能指出我做错了什么?
我试过这个来获取活动的名称:
ActivityManager mgrActivity = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
for (RunningTaskInfo run : mgrActivity.getRunningTasks(Integer.MAX_VALUE)) {
System.out.println(run.topActivity.getPackageName());
}
for (RecentTaskInfo run : mgrActivity.getRecentTasks(Integer.MAX_VALUE, ActivityManager.RECENT_IGNORE_UNAVAILABLE)) {
if (run.origActivity != null) {
System.out.println(run.origActivity.getPackageName());
} else {
System.out.println(run.id);
}
}