0

カスタムリストビューで実行中のアプリアイコンを表示し、アイコンをクリックすると対応するアプリに切り替えるアプリを作成しようとしています。「ActivityManager.RunningTaskinfo」、「PackageManager」、および「intent」を使用して作成する必要があると思うので、試しています..しかし、コードでエラーが発生しました..「topActivity」でエラーが発生しましたこのエラーを修正するにはどうすればよいですか? そして、「 Drawable [] images = new Drawable[packs.size()];」などを使用して、カスタムリストビューで activitymanager と packagemanager から取得したアイコンである「 rtid 」を表示する方法

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();
    }
  }

あなたの主な問題は、1 つのパッケージではなく、複数のパッケージを取得しようとしていたtopActivityことListですRunningTaskInfo

Drawables の表示に関しては、おそらく独自のカスタム アダプターを作成する必要がありますが、これはそれほど難しくありません。

于 2013-02-17T00:24:35.797 に答える