android loadIcon生成outOfMemoryError
我只有一个ListView
包含所有已安装的应用程序及其图标
但如果安装的应用程序太多,我outOfMemoryErrors
在执行时遇到outOfMemoryErrors
Drawable app_icon = applicationInfoList.get(i).loadIcon(context.getPackageManager()));
每个ListEntry
(这一行写在我的ListAdapter
)
到目前为止没问题,我明白为什么我遇到这个错误(加载的图标太多,vm堆太少)
但我在设置中查看了机器人管理应用ManageApplications
活动的源代码
在使用ManageApps
设置时,我从未遇到任何这些错误
但奇怪的是,他们完全采用相同的方式
你可以在这里看到他们的来源:
ManageApplications
活动
Drawable icon
加载的位置
它在列表视图中设置的位置
但我真的不明白为什么我会得到一个oom而他们不?
将图标大小调整为小图片,你会没事的! (之前也遇到过这个问题)
自己解决了。
我现在正在使用它之前将每个图像加载到缓存中。
如果缓存已满,最旧的元素将被丢弃,
所以新的可以缓存。 此外,我将我的图像调整为较小的图标。
做到了。