无论是桌面应用程序还是 Android 手机应用程序,都会涉及数据的存储。下面我们将会详细介绍在 Android 中存储数据的相关知识。
在 Android 中应用程序存储的数据(包括文件)都属于应用程序私有,但同时也提供了 ContentProviders(数据共享),方便应用程序将私有的数据分享给其他程序使用。
数据存储方式共分为5种,分别为:
其中,网络存储在本质上是对网络资源的获取和访问,其相关内容会在网络编程教程中进行介绍。
此外,Android 系统框架提供了 ContentProvider 来实现各种应用程序间持久化数据的共享。
下面我们先来介绍一下第一种 SharedPreferences。
SharedPreferences 是 Android 系统提供的一个通用的数据持久化框架,用于存储和读取 key-value 类型的原始基本数据对。
目前仅支持 boolean、float、int、long 和 string 等基本类型的存储,对于自定义的复合数据类型,是无法使用 SharedPreferences 进行存储的。
SharedPreferences 主要用于存储系统的配置信息,类似于 Windows 下常用的 .ini 文件。
例如上次登录的用户名、上次最后设置的信息等,通过保存上一次用户所做的修改或者自定义参数设定,当再次启动程序后依然保持原有设置。它是用键值对的方式存储的,方便管理写入和读取。
使用 SharedPreferences 的步骤如下:
每个 Activity 默认都有一个 SharedPreferences 对象,获取 SharedPreferences 对象的方法有两种:
1)SharedPreferences getSharedPreferences(String name, int mode)。
使用该方法获取 name 指定的 SharedPreferences 对象,并获取对该 SharedPreferences 对象的读写控制权。
当应用程序中可能使用到多个 SharedPreferences 时使用该方法。
2)SharedPreferences getPreferences(int mode)。
当应用程序中仅需要一个SharedPreferences对象时,使用该方法获取当前 Activity 对应的 SharedPreferences,而不需要指定 SharedPreferences 的名字。
其中,参数 mode 有 4 种取值,分别是:
调用 edit() 方法获取 SharedPreferences.Editor,SharedPreferences 通过该接口对其内容进行更新。
通过 SharedPreferences.Editor 接口提供的 put 方法对 SharedPreferences 进行更新。
例如使用 putBoolean(String key, boolean value)、putFloat(String key, float value) 等方法将相应数据类型的数据与其 key 对应起来。
调用 SharedPreferences.Editor 的 commit() 方法将更新提交到 SharedPreferences 中。
实例 SharedPreferencesDemo 演示了 SharedPreferences 对象的使用方法。
该实例的运行效果如图 1 所示。