getDefaultSharedPreferences

getDefaultSharedPreferences

据我所知,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/

10-09 04:05