【发布时间】:2010-09-29 18:35:16
【问题描述】:
只是一个随机的问题。我现在正在学习一点 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 来设置/获取需要的值是一个更好的解决方案吗? (更好的是“更清洁,不会显着影响性能)
【问题讨论】: