アプリで大量の画像を表示した後、クラッシュするというユーザー コメントがありました (彼は、メモリ不足エラーが原因であると考えています)。次の関連コードがあります。
int themeID = mNav[mPos];
String icon = getThemeData(DbAdapter.KEY_ICON, themeID);
ImageView viewer = (ImageView)findViewById(R.id.viewer);
Bitmap bMap = null;
try {
bMap = getJPG(icon + ".jpg");
} catch (IOException e) {
e.printStackTrace();
}
viewer.setImageBitmap(bMap);
ユーザーが画像を切り替えると、それが再実行されます。ここから、ビットマップで recycle() を呼び出す必要があることがわかります。画像を設定した後、bMap で呼び出す必要がありますか? または、次のものを設定する前にビューアーからプルする方法はありますか?
リサイクルのドキュメント (bMap で呼び出す場合) によると、使用する必要はないようです: これは高度な呼び出しであり、通常は呼び出す必要はありません。このビットマップへの参照はもうありません。