Android SharedPreferences与Editor简介(上)

(一)有些时候,应用程序有少量的数据需要保存,而且这些数据的格式很简单,都是普通的字符串、标量类型的值等,比如应用程序的各种配置信息(如是否打开音效、是否使用振动效果等)、小游戏的玩家积分(如扫雷英雄榜之类的)等,对于这种数据,Android 提供了SharedPreferences进行保存。

(1)SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此它保存的数据主要是简单类型的key-value对。

SharedPreferences接口主要负责读取应用程序的Preferences数据,它提供了如下常用方法来访问SharedPreferences中的key-value对。

(2)boolean contains(String key):判断SharedPreferences是否包含特定key的数据。

(3)abstract Map<String,?>getAll():获取SharedPreferences数据里面全部的key-value对。

(4)boolean getXxx(String key,xxx defValue):获取SharedPreferences数据里指定key对应的value。如果该key不存在,则返回默认值defValue。其中xxx可以是boolean、float、int、long、String等各种基本类型的值。


(二)SharedPreferences接口本身并没有提供写入数据的能力,而是通过SharedPreferences的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象。Editor提供了如下方法来向SharedPreferences写入数据。

(1)SharedPreferences.Editor clear():清空SharedPreferences里所有数据。

(2)SharedPreferences.Editor putXxx(String key,xxx value):向SharedPreferences存入指定key对应的数据。其中xxx可以是boolean、float、int、long、String等各种基本类型的值。

(3)SharedPreferences.Editor  remove(String key):删除SharedPreferences里指定key对应的数据项。

(4)boolean commit():当Editor 编辑完成后,调用该方法提交修改。


(三)从用法角度来看,SharedPreferences和SharedPreferences.Editor组合起来非常像Map,其中SharedPreferences负责根据key读取数据,而SharedPreferences.Editor则用于写入数据。


(四)SharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name,int mode)方法来获取SharedPreferences实例,该方法的第二个参数支持如下几个值。

(1)Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读写。

(2)Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写。

(3)Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。


Android 4.2开始,Android 不再推荐使用MODE_WORLD_READABLE、MODE_WORLD_WRITEABLE这两种模式,因为这两种模式允许其他应用程序来读或写本应用创建的数据,因此容易导致安全漏洞,如果应用程序确实需要吧内部数据暴露出来供其他应用访问,则应该使用本书后面介绍的ContentProvider。

这篇主要是对于SharedPreferences和Editor  的一个简单概括,以及其中的参数类型和使用的方法,下篇会以实际代码来说明这些方法的使用以及所需要注意的地方。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值