android loadIcon生成outOfMemoryError

时间:2013-11-21 20:00:28

标签: java android out-of-memory android-drawable

我只有一点ListView包含所有已安装的应用及其图标 但如果安装的应用程序太多,我会在执行

时遇到outOfMemoryErrors
Drawable app_icon = applicationInfoList.get(i).loadIcon(context.getPackageManager()));

每个ListEntry(此行都写在我的ListAdapter

中 到目前为止没有问题,我明白为什么我遇到这个错误(加载的图标太多,vm堆太少)
但我在设置中查看了机器人 ManageApplications 活动的源代码 在使用ManageApps设置时,我从未遇到任何 oom错误 但奇怪的是他们这样做完全相同的方式

你可以在这里看到他们的来源:
the ManageApplications activity
where the Drawable icon gets loaded
where it is set in the list view

但我真的不明白为什么我会得到一个oom而他们不这样做?

2 个答案:

答案 0 :(得分:1)

将图标调整为小图片,你会没事的! (之前也遇到过这个问题)

答案 1 :(得分:1)

自己解决了。
我现在正在使用它之前将每个图像加载到缓存中 如果缓存已满,则最旧的元素将被丢弃,
所以新的可以缓存。 另外我将我的图像调整为较小的图标 做到了。