尝试从ActivityManager.RunningTaskInfo中运行应用程序图标时出错

时间:2013-02-16 15:39:39

标签: java android android-listview android-package-managers activity-manager

我正在尝试创建一个显示在自定义列表视图中运行应用图标的应用,并在点击图标时切换到相应的应用。 我想我应该使用“ActivityManager.RunningTaskinfo”,“PackageManager”和“intent”来实现它 所以我正在尝试...但是我的代码出错...我在“ 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 个答案:

答案 0 :(得分: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,你可能需要create your own custom adapter,这不是很难。