我应该在应用程序类中放置getDefaultSharedPreferences

时间:2015-06-01 07:13:12

标签: android sharedpreferences

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

1 个答案:

答案 0 :(得分:1)

第一次加载后

SharedPreferences缓存,因此磁盘访问加载数据需要花费一些时间,但只有一次。在第一次引用后,它们就在内存中。第一次检索特定SharedPreferences(例如PreferenceManager.getDefaultSharedPreferences())时,数据会从磁盘加载并保留。