8.1 使用SharedPreferences

作者: AndYMJ | 来源:发表于2017-11-10 22:50 被阅读0次

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

8.1.1 SharedPreferences与Editor简介

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

1:判断SharedPreferences是否包含特定Key放入数据。

2:获取SharedPreferences数据里全部的Key-value对。

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

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

1:清空sharedpreferences里所有的数据。

2:向SharedPreferences存入指定Key对应的数据。其中xxx可以是boolean、float、int、long、String等各种基本类型的值。

3:删除 SharedPreferences里指定Key对应的数据项

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

提示:

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

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

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

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

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

MainActivity

上面程序中的第一段代码用于读取SharedPreferences数据,当程序所读取的SharedPreferences数据文件根本不存在时,程序也返回默认值,并不会抛出异常;第二段代码用于写入SharedPreferences数据,由于SharedPreferences并不支持写入Date类型的值。故程序使用了SimpleDateFormat将Date格式化成字符串写入。

实例:记录应用程序的使用次数

这个简单的实例可以记录应用程序的使用次数:当用户第一次启动该程序时,系统创建SharedPreferences来记录使用次数,系统先读取SharedPreferences中记录的使用次数,然然后将使用次数加1.

本示例代码如下:

上面程序代码用于读取SharedPreferences中记录的使用次数;第二行使用次数增加1,并再次将使用次数写入SharedPreferences中。

相关文章

网友评论

    本文标题:8.1 使用SharedPreferences

    本文链接:https://www.haomeiwen.com/subject/oiibmxtx.html