1

我使用了一些在资源文件中定义的字符串。在资源使用和性能方面什么更好?调用context.getString(stringId)每个循环或将 存储context.getString(stringId)在循环外的变量中并在循环内使用此变量。

一些伪代码...

没有变量:

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

有一个变量:

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

更多的想法......变量的东西看起来是更好的解决方案,因为不需要每次都从资源文件中获取数据。但是您必须再使用一个变量。好的,在这种情况下它只是一个变量,但它也只是一个伪示例,因此它可能会增加一些资源使用。除此之外,在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 回答