1

リソース ファイルで定義されているいくつかの文字列を使用します。リソースの使用とパフォーマンスの点でどちらが優れていますか? context.getString(stringId)すべてのループを呼び出すかcontext.getString(stringId)、ループ外の変数に格納して、ループ内でこの変数を使用します。

いくつかの擬似コード...

変数なし:

while (condition) {
   DoSomethingWithString(context.getString(stringId));
}

変数を使用:

String variable = context.getString(stringId);
while (condition) {
   DoSomethingWithString(variable);
}

もう少し考えてみます...毎回リソースファイルからデータを取得する必要がないため、変数のものはより良い解決策のようです。ただし、もう 1 つの変数を使用する必要があります。OK、この場合は 1 つの変数にすぎませんが、疑似例でもあるため、リソースの使用量が追加される可能性があります。これに加えて、resourcestringこの文字列が使用される前に別の文字列にコピーする必要があります (パフォーマンス?)。context.getString(stringId)バイトコード コンパイラが適切な最適化作業を行っている場合は、ループ内で を使用する方が適切な解決策になる可能性があります。

4

1 に答える 1

2

(あなたの質問に対する私の理解によると)context.getString(stringId)をループ外の変数に保存し、この変数をループ内で使用することをお勧めします。

このため、 for ループでは、プログラムの実行者は毎回 String ファイルからデータを取得する必要はありません。単一の変数を参照するだけです。

例えば:

String result = context.getString(id);

for(int i=o;i<some.size();i++)
{
 Log.d(TAG, result);
}
于 2011-11-24T13:03:38.097 に答える