0

我正在尝试制作一个在自定义列表视图中显示正在运行的应用程序图标的应用程序,并在单击图标时切换到相应的应用程序。我想我应该使用“ActivityManager.RunningTaskinfo”、“PackageManager”和“intent”来实现它,所以我正在尝试..但我的代码出错了..我在“ topActivity ”上出错了我该如何解决这个错误? 以及如何使用“ Drawable[] images = new Drawable[packs.size()]; ”在自定义列表视图中显示“ rtid ”,这是我从自定义列表视图中的 activitymanager 和 packagemanager 获得的图标;

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);
4

1 回答 1

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包裹。

至于显示 Drawable,您可能必须创建自己的自定义适配器,这并不难。

于 2013-02-17T00:24:35.797 回答