我正在尝试创建一个显示在自定义列表视图中运行应用图标的应用,并在点击图标时切换到相应的应用。 我想我应该使用“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);
答案 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,这不是很难。