- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Android中5种数据存储方式》.pdf
Android 中 5 种数据存储方式
1 概述
SharedPreferences 存储数据。
ContentProvider 存储
文件存储
SQLlite 存储
网络存储
Preference ,File , DataBase 这三种方式分别对应的目录是:
/data/data/Package Name/Shared_Pref
/data/data/Package Name/files
/data/data/Package Name/database
关于这五种数据存储方式,根据实际情况选择最合适的,秉持最简单原则,也就是说能用简单的
方式处理,就不要用复杂的方式。比如存储几个数据或简单对象,用 SharedPreference 也能做到,
就没必要写个 ContentProvider。
简单数据和配置信息,SharedPreference 是首选;
如果 SharedPreferences 不够用,那么就创建一个数据库;
结构化数据,一定要创建数据库,虽然这稍显烦锁,但是好处无穷;
文件就是用来存储文件(也即非配置信息或结构化数据) ,如文本文件,二进制文件,PC 文件,
多媒体文件,下载的文件等等;
尽量不要创建文件;
如果创建文件,如果是私密文件或是重要文件,就存储在内部存储,否则放到外部存储。
2 SharedPreferences 存储数据
SharedPreferences 可以将数据保存到应用程序的私有存储区,这些存储区中的数据只能被写入
这些数据的软件读取。
它的本质是基于 XML 文件存储 key-value 键值对数据,通常用来存储一些简单的配置信息。
其存储位置在 /data/data/包名 /shared_prefs 目录下。
使用 SharedPreferences 是有些限制的:只能在同一个包内使用,不能在不同的包之间使用。
例如:登录用户的用户名与密码。
步骤如下:
(1 ) 使用 Activity 类的 getSharedPreference 方法获得 SharePreferences 对象。其中存储
key-value 的文件名称由 getSharedPreferences 方法的第一个参数指定;第二个参数表示所创建的
数据文件的访问权限( “MODE_WORLD_READABLE”表示其他用户有 “读”的权限;
“MODE_WORLD_WRITEABLE ” 表示其他用户有 “写”权限;MODE_PRIVATE 和
MODE_APPEND 创建的文件对其他用户都是不可访问的) ;
(2 )使用SharedPreferences 接口的 edit 获得 SharedPreferences.Editor 对象 ;
(3 )通过 Sharedreferences.Editor 接口的 putXxx 方法保存 key-value 对。其中 Xxx 表示 value
不同数据类型。例如,Boolean 类型的 value 需要用 putBoolean 方法,字符串类型的 value 需要用
putString 方法 ;
(4 )通过Sharedreferences.Editor 接口的 commit 方法保存 key-value 对。commit 方法相当
于数据库事务中的提交(commit)操作,只有在事务结束后进行提交,才会将数据真正保存在数据库中。
保存 key-value 也是一样,在使用 putXxx 方法指定了 key-value 对后,必须调用 commit 方法才能
将 key-value 对真正保存在相应的文件中。
运行该程序,并在相应的组建输入值,然后退出应用程序,再次进入程序,系统会将上次输入的
数据显示在相应组件中。
*由于应用程序在退出时会将组件的值保存在文件中,因此需要将保存的 Key-value 对的代码写在
Activity 类的 onStop 方法中。
private final String PREFERENCES_NAME = bjh;
public void onStop() {
// (第1步)获得SharedPreferences对象
SharedPreferenc
文档评论(0)