SharedPreferences的基本使用及apply()和commit()的区别

龙腾四海非一日之功

一、SharedPreferences
1、用于保存数据,一般数据为系统配置信息
2、是以键值对的形式存储到data/data/package-name/shared_prefs/l目录的XML文件中
3、获取SharedPreferences实例的方式有三种:

         /*第一种 -- SharedPreferences的文件名是当前类名*/
        SharedPreferences sp1 = getPreferences(Context.MODE_PRIVATE);
        /*第二种 -- SharedPreferences的文件名使用包名+_preferences 模式为Context.MODE_PRIVATE*/
        SharedPreferences sp2 = PreferenceManager.getDefaultSharedPreferences(this);
        /*第三种 -- SharedPreferences的文件名自己定*/
        SharedPreferences sp3 = getSharedPreferences("自定义文件名称", MODE_PRIVATE);

4、通过SharedPreferences 存储数据:

        SharedPreferences sp = getSharedPreferences("mySharedPreferences", MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();
        editor.putBoolean("boolean", true);
        editor.putFloat("float", 12.3f);
        editor.putInt("int", 12);
        editor.putLong("long", 123L);
        editor.putString("string", "string");
        Set<String> set = new HashSet<>();
        set.add("set");
        editor.putStringSet("set", set);
        //editor.apply();  ------  ①
       // editor.commit(); ------  ②

以上就是SharedPreferences 所能存储的所有数据类型;通过上面的代码我们可以看到SharedPreferences 的键只能是String类型的。存储完数据后使用①或②的方式提交;两者之间的区别是:① 没有返回值,用户不能知道是否保存成功,但是效率高,提交后先把数据保存到内存中,然后通过异步的方式保存到硬盘中。②返回boolean类型的值,用户可以知道是否保存成功,但是效率低,通过同步的方式保存到硬盘中。

五、获取SharedPreferences 中保存的数据

        SharedPreferences sp = getSharedPreferences("SharedPreferences", MODE_PRIVATE);
        String strValue = sp.getString("string", "");
        int intValue = sp.getInt("int", -1);
        Set<String> setValue = sp.getStringSet("set", null);
        ..........

当获取SharedPreferences中的值时,一定要指定清楚要获取那个xml文件中的数据;在获取值的方法getXxxxx(String, default)中第一个参数是所获取的值的键名,第二个参数是缺省值(当指定的键不存在时,返回的数据)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值