只是一个随机的问题。我现在正在学习一点 Android,在大多数示例中,似乎在每个函数中使用(cast) findViewById()
.
将结果存储在 Activity 的成员值中被认为是好的还是坏的做法?简单的例子:
public class MyActivity extends Activity {
private EditText myText;
public void onCreate(blah blah) {
// blah
this.myText = (EditText) findViewById(R.id.mytext);
}
}
并从那里使用 myText 字段。我认为这对性能有好处(取决于 findViewById 的内部工作原理,我很确定它已经非常快了),但我还没有看到它受到鼓励。此外,这不是我第一次遇到这样的“缓存”会导致问题的情况(有一种情况是数据库连接没有被正确释放,因为我ConnectionManager
以那种方式记住了一个或一些东西)。
其次,有点相关,如果您想记住 Activity 中跨方法的某些内容(以及稍后,当 Activity 稍后重新启动时),保持 SharedPreferences 中的类字段和值是否更明智,或者调用 SharedPreferences每次设置/获取需要更好解决方案的值?(更好的是“更清洁,不会显着影响性能”)