Когда я долгое время нажимаю кнопку «домой» на своем телефоне, я вижу список действий, которые я недавно запустил. Когда я запускаю другое действие, Android кэширует/приостанавливает старую активность.Как я могу получить список приостановленных/кэшированных acitvities, которые я вижу, когда кнопка home нажата?
Я хотел бы получить список недавно запущенных мероприятий, но я не могу понять, как это сделать. Я порылся StackOverflow и SDK документации ActivityManager
Android и придумали с этими двумя отрывками:
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);
}
}
начать с 'ActivityManager.RECENT_WITH_EXCLUDED' будет возвращать деятельности, которые имеют флаг exclude_from_recent, которые не отображаются в панели последних приложений (очевидно) – njzk2
@ njzk2, любые предложения о том, что я должен изменить его? Возможные значения: «ActivityManager.RECENT_WITH_EXCLUDED» и «ActivityManager.RECENT_IGNORE_UNAVAILABLE». –
Я думаю, что это флаг, см. Раздел «Константы» ссылки, которую вы указали. Вы используете флаг 'RECENT_WITH_EXCLUDED' - возвращаете все задачи, даже те, которые установили флаг' FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS', я считаю, что правильным является в этом случае 'RECENT_IGNORE_UNAVAILABLE' -> Предоставляет список, который не содержит никаких недавних задач, которые в настоящее время недоступны для пользователя. – g00dy