0

同じクラスを複数回インスタンス化できるようにするために静的ハッシュマップを取得しました。ハッシュマップはすべてのキーと値の参照を保持します。

class A {
     public static final Map<String,Bitmap> map = new HashMap<String,Bitmap>();

     // methods
}

したがって、クラスのすべてのインスタンスで、Aを呼び出すとmap.get(KEY)、常に同じビットマップが取得されます。「リリースされた不明なビットマップ参照」が表示されます。IllegalStateException何が間違っていますか?

4

2 に答える 2

1

Android がメモリを必要とする場合、いくつかの変数が削除されることがあります。そのため、アプリの静的変数にビットマップのような大きな変数がたくさんある場合、それらはシステムによって削除されることがあります。アプリでこの問題が発生しました。私が見つけた唯一の解決策は、オブジェクトが存在するかどうかをゲッターで確認する必要があることです。存在しない場合は、再作成する必要があります...

于 2013-09-29T01:59:27.823 に答える
0

ビットマップで .recycle() を呼び出していますか? その場合、ハッシュマップからビットマップを取得しようとすると、存在しなくなり、その例外がスローされます

于 2013-09-29T00:48:50.077 に答える