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。