我使用了一些在资源文件中定义的字符串。在资源使用和性能方面有什么好处?
每个循环调用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)
可能是更好的解决方案。
答案 0 :(得分:2)
(根据我对你的问题的理解)我建议你将context.getString(stringId)存储在循环外的变量中,并在循环中使用这个变量。
因为,在这个for循环中,你的程序执行者不需要每次都从String文件中获取数据。它只是引用单个变量。
例如:
String result = context.getString(id);
for(int i=o;i<some.size();i++)
{
Log.d(TAG, result);
}