我有一个静态hashmap,以便能够多次实例化同一个类,而hashmap将包含所有键值引用。
class A {
public static final Map<String,Bitmap> map = new HashMap<String,Bitmap>();
// methods
}
因此,在课程A
的每个实例上,当您调用map.get(KEY)
时,您将始终获得相同的位图。我收到了“已发布的未知位图参考”IllegalStateException
我做错了什么?
答案 0 :(得分:1)
有时候,如果Android需要内存,它会删除一些变量。 因此,如果你的应用程序在静态变量中有很多大变量,比如Bitmaps,那么它们有时会被系统删除。我有一个应用程序的这个问题。我找到的唯一解决方案是,如果对象存在,你必须检查你的getter,如果没有,你将不得不重新创建它......
答案 1 :(得分:0)
你在位图上调用.recycle()吗? 如果是这样,当您从hashmap获取位图时,它将不再存在并抛出该异常