android sharedpreferences数据存储

在android中,sharedpreferences是一种轻量级的数据存储方式,它以键值对的形式存储在xml文件中,主要存储简单的配置信息。

下面简单实现数据存储:

SharedPreferences preferences= PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor=preferences.edit();
editor.putString("name", "zs");
editor.apply();

读取数据:

SharedPreferences preferences= PreferenceManager.getDefaultSharedPreferences(this);
String name=preferences.getString("name",null);

 


 

当然,我们也可以不适用默认的SharedPreferences,也可以这样获取SharedPreferences

SharedPreferences preferences = getSharedPreferences("name", MODE_PRIVATE);

两种方法的本质是一样的,可以看一下PreferenceManager中的部分代码:

    public static SharedPreferences getDefaultSharedPreferences(Context context) {
        return context.getSharedPreferences(getDefaultSharedPreferencesName(context),
                getDefaultSharedPreferencesMode());
    }

    private static String getDefaultSharedPreferencesName(Context context) {
        return context.getPackageName() + "_preferences";
    }

    private static int getDefaultSharedPreferencesMode() {
        return Context.MODE_PRIVATE;
    }

只不过将文件名设为包名+"_preferences",mode设为MODE_PRIVATE罢了。

 


 

Editor有两种提交方法:apply和commit,两者有几个不同点:

1、 apply没有返回值;commit返回boolean表明是否提交成功 。

2、apply将数据原子提交到内存, 再异步提交到磁盘; 而commit同步的提交到磁盘,因此,在多个数据并发的提交commit的时候,效率会降低。所以通常情况下,为了提高效率,推荐使用apply;如果确实需要确认是否提交成功,则使用commit。

 

posted @ 2016-03-06 14:30  maozs  阅读(115)  评论(0编辑  收藏  举报