2

私は私のアプリです、私はgetResources()そのようなものを たくさん使います

BitmapFactory.decodeResource(getResources(), resourceid, opts);

Resources res = getResources() をグローバル変数として使用して使用できます

BitmapFactory.decodeResource(res, resourceid, opts);

だから、私の質問は次のとおりです。メモリリークを回避するより良い方法は何ですか?

ありがとう

4

2 に答える 2

1

私は時々このようにしていますが、それは問題ないと思いますが、あなたはそれを見る必要があります. あなたの状況では、Global何も変化していないときに変数を作成する価値があるかどうかはわかりません。contextまたは他の変数に応じて特定のリソースを取得する関数に対して行います。しかし、ここでは、方法がわかりません

BitmapFactory.decodeResource(getResources(), resourceid, opts);

よりも優れています

BitmapFactory.decodeResource(res, resourceid, opts);

不要な手順を 1 つ追加しているようです

于 2013-03-14T03:59:17.210 に答える
1

これをあまりマイクロ最適化しようとはしません。可能な場合は、ガベージを減らすという一般的な方法を使用してください。これにより、何かをデコードし、それを範囲外にして再度デコードすることを避けることを意味します。

本当に、巨大な画像などをデコードし続けない限り、問題はないと思います。

于 2013-03-14T04:03:56.120 に答える