据我所知,getDefaultSharedPreferences
正在将所有首选项文件加载到内存中。
在我的应用程序中,我有很多类可以传递上下文并使用getDefaultSharedPreferences
。在执行期间,这些类加载了很多次,因此getDefaultSharedPreferences
称为分配。
我的问题是:我是否应该仅在Application类中加载一次偏好设置,然后从那里访问所有类中的偏好设置?这可行吗?这会提高我的应用程序速度吗?有人这样做吗?
像这样:
private static MyApplication singleton;
public static MyApplication getInstance() {
return singleton;
}
@Override
public void onCreate() {
super.onCreate();
myPreferences = PreferenceManager.getDefaultSharedPreferences(this);
}
public SharedPreferences getPreferences(){
return myPreferences;
}
最佳答案
SharedPreferences
在第一次加载后进行缓存,因此磁盘访问加载数据将花费一些时间,但只需要一次。首次检索特定的SharedPreferences
(例如,PreferenceManager.getDefaultSharedPreferences()
)时,数据是从磁盘加载并保存的。
关于android - 我应该将getDefaultSharedPreferences放在应用程序类中吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30567662/