Ошибка при попытке запустить значок приложения из ActivityManager.RunningTaskInfo
Я пытаюсь создать приложение, которое показывает значок запущенного приложения в пользовательском просмотре списка, и переключиться на соответствующее приложение, когда щелкните значок. я думаю, что я должен использовать "ActivityManager.RunningTaskinfo", "PackageManager" и "намерение", чтобы сделать это, поэтому я пытаюсь.. но я получил ошибку в своем коде.. я получил ошибку в "topActivity" Как я могу исправить эту ошибку? и как показать "rtid", который является значком, который я получил от Activitymanager и Packagemanager в настраиваемом просмотре списка, используя, например, "Drawable [] images = new Drawable [packs.size ()];"
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(100);
ApplicationInfo appInfo = getPackageManager().getApplicationInfo(tasks.topActivity.getPackageName(), 0);
Drawable rtid = getPackageManager().getApplicationIcon(appInfo);
1 ответ
Я думаю, что вы можете просто это немного.
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(100);
List <Drawable> applicationDrawables = new ArrayList <Drawable>();
PackageManager pacMgr = getPackageManager();
for (ActivityManager.RunningTaskInfo runningTask: tasks)
{
try {
applicationDrawables.add (pacMgr.getApplicationIcon(runningTask.topActivity.getPackageName()));
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
Ваша главная проблема заключалась в том, что вы пытались получить topActivity
для List
а не только один RunningTaskInfo
пакет.
Что касается отображения Drawables, вам, вероятно, придется создать свой собственный адаптер, что не очень сложно.