SharedPreferences
来源:互联网 发布:java 字符串转换字节 编辑:程序博客网 时间:2024/06/16 17:57
我们所使用的所有应用程序都会涉及到数据的输入、输出,比如应用程序的参数设置、程序运行状态数据都要保存到外部存储器上,这样退出程序或断电之后数据才不会丢失。
这就涉及到了数据持久化技术。
Android提供了三种数据持久化方式:
- 文件存储
- SharedPreferences
- 数据库存储
有时,当我们的应用有少量数据需要保存,而这些数据的格式很简单的时候(例如应用程序的配置信息,普通的字符串等),我们可以使用Android提供的SharedPreferences进行保存。
SharedPreferences保存的数据主要是类似于配置信息格式的数据,它使用键值对(key-value)的方式来存储数据。
读取数据|SharedPreferences
SharedPreferences接口主要负责读取应用程序的Preferences数据,有以下几个方法:
boolean contains(String key):判断SharedPreferences是否包含特定key的数据。
abstract Map getAll():获取SharedPreferences数据里全部的key-value对。
boolean getXxx(String key , xxx defValue):获取SharedPreferences数据里指定的key对应的value。
若指定的key不存在,则返回默认值defValue。xxx可以是各种基本类型的值。
写入数据|SharedPreferences.Editor
SharedPreferences接口本身并没有提供写入数据的能力,想要写入数据要通过它的内部接口。通过调用edit()方法即可获取Editor对象。
Editor有以下几种方法来向SharedPreferences写入数据:
SharedPreferences.Editor putXxx(String key,xxx value):向SharedPreferences存入指定的数据。
SharedPreferences.Editor remove(String key):删除SharedPreferences里指定key对应的数据项。
SharedPreferences.Editor clear():清空SharedPreferences里的数据。
boolean commit():当Editor编辑完成后,要commit修改。
获取SharedPreferences对象
前面已经多次提过,SharedPreferences本身是一个接口。程序无法直接创建SharedPreferences实例,但我们可以通过以下几种方法来得到SharedPreferences对象:
Context类中的getSharedPreferences(String name,int mode)方法.
这个方法接受两个参数,第一个是SharedPreferences文件的名称,若指定的文件不存在则创建一个,第二个参数用于指定操作模式。
目前主要用两种模式可以选择:Context.MODE_PRIVATE:默认的操作模式,和传入0效果一样。指定该SharedPreferences数据只能被本应用程序读写。
Context.MODE_PROCESS:一般用于有多个进程对同一个SharedPreferences文件进行读写的情况。
Context.MODE_WORLD_READABLE:能被其他应用程序读,但写不了
- Context.MODE_WORLD_WRITEABLE:能被其他应用程序读和写
注:后两种从Android 4.2以后因为安全问题就不再推荐使用,若需将应用程序内部的数据供其他应用访问,可使用ContentProvider。
Activity类中getPreferences(int mode)方法:该方法只接收了一个操作模式作为参数,使用该方法时会自动将当前活动的类名作为SharedPreferences的文件名。
PreferenceManager类中的static SharedPreferences getDefaultSharedPreferences(Context context)方法:
静态方法。接收一个Context参数,自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。
注:知识点参考自Android官方文档、《疯狂Android讲义》|李刚以及《第一行代码》| 郭霖
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- SharedPreferences
- sharedPreferences
- A new image format for the Web
- python 基本语法 遍历 for while
- I2C_触摸屏调试记录
- const||C++
- 对普里姆算法的一点理解
- SharedPreferences
- unity之RotateAround 一个物体围绕另外一个物体旋转
- Ubuntu系统的安装与使用:[2]wubi安装镜像
- xcode一个逆天的功能
- ios学习之xcode编译器的浅谈
- LightOJ - 1033 Generating Palindromes(区间DP)
- 学习Andorid开发第一天
- 大神们的微博
- Android开发之如何保证Service不被杀掉(broadcast+system/app)