Android系列的博客主要是记录和总结自己在平时学习之中遇到的问题,方便日后用到时查看,同时也希望对读者有所帮助。不足之处,欢迎指正~
在说到Android数据存储之前,先提一下数据持久化,所谓数据持久化就是将内存中的瞬时数据保存下来,在应用开发中是很重要的部分。举个栗子,我们打开一个应用之后输入了用户名和密码,之后回到了桌面,再回到应用时,我们希望之前输入的内容还在,这个要怎么实现呢?可以在回到桌面时将数据保存,返回视图时再填入数据。
其实不止是这些瞬时数据的保存,包括一些和应用相关的数据也是需要保存的,比如用户第一次登陆之后,之后再进入应用不必再次登陆,那么用户的信息就需要保存下来。下面进入正题。
注意:数据持久化应该结合Activity的生命周期使用。
Android本地数据存储有以下几种方式:
SharedPreferences:用户偏好设置
内部存储,数据存储到手机内置存储器
外部存储,外部SD卡中存储数据
SqlLite本地数据库存储
ContentProvider
其中内部存储和外部存储都属于文件存储,这次主要是介绍SharedPreferences和内部存储。
1. SharedPreferences:用户偏好设置
SharedPreferences使用键值对来存储数据,默认以xml文件形式进行存储,对应的文件保存到手机内存的data//xxx(保存数据时建立的文件)目录下面,提供和putString(),putInt(),putBoolean()等方法存储不同类型的数据,使用时很方便。
因为SharedPreferences存储时的数据格式和数据类型限制,它只适用于存储一些简单用户设置,例如用户设置的夜间模式,音量,或者登录信息等。
如何获取SharedPreferences
Android提供了3中方法获取SharedPreferences对象。
1) Context 类中的 getSharedPreferences()方法
参数:getSharedPreferences()需要如下两个参数
String类型:指定文件名(不需要带文件后缀)
int类型:指定文件的操作模式,常用的是MODE_PRIVATE (该文件只允许本应用程