- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【WORD】Android本地数据存储方案
Android系列的博客主要是记录和总结自己在平时学习之中遇到的问题,方便日后用到时查看,同时也希望对读者有所帮助。不足之处,欢迎指正~
在说到Android数据存储之前,先提一下?数据持久化?,所谓数据持久化就是将内存中的瞬时数据保存下来,在应用开发中是很重要的部分。举个栗子,我们打开一个应用之后输入了用户名和密码,之后回到了桌面,再回到应用时,我们希望之前输入的内容还在,这个要怎么实现呢?可以在回到桌面时将数据保存,返回视图时再填入数据。
其实不止是这些瞬时数据的保存,包括一些和应用相关的数据也是需要保存的,比如用户第一次登陆之后,之后再进入应用不必再次登陆,那么用户的信息就需要保存下来。下面进入正题。
注意:数据持久化应该结合Activity的生命周期使用。
SharedPreferences:用户偏好设置
内部存储,数据存储到手机内置存储器
外部存储,外部SD卡中存储数据
SqlLite本地数据库存储
ContentProvider
其中内部存储和外部存储都属于文件存储,这次主要是介绍SharedPreferences和内部存储。
SharedPreferences使用键值对来存储数据,默认以xml文件形式进行存储,对应的文件保存到手机内存的data/application package/xxx(保存数据时建立的文件)目录下面,提供和putString(),putInt(),putBoolean()等方法存储不同类型的数据,使用时很方便。
因为SharedPreferences存储时的数据格式和数据类型限制,它只适用于存储一些简单用户设置,例如用户设置的夜间模式,音量,或者登录信息等。
Android提供了3中方法获取SharedPreferences对象。
参数:getSharedPreferences()需要如下两个参数
String类型:指定文件名(不需要带文件后缀)
int类型:指定文件的操作模式,常用的是MODE_PRIVATE (该文件只允许本应用程序进行读写),MODE_APPEND(对文件进行写入操作时,是在文件尾追加内容),MODE_MULTI_PROCESS (用于会有多个进程中对同一个 SharedPreferences 文件进行读写的情况)。
参数:只接收一个操作模式参数。
这个方法时会自动将当前活动的类名作为 SharedPreferences 的文件名。
这是一个静态方法,它接收一个 Context 参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreferences 文件
以下是代码案例(以保存登录信息为例):
获取SharedPreferences对象
取出数据
取出数据之前要先获得SharedPreferences对象。
文件存储的形式不对文件进行任何格式化处理,存入是什么样,取出来也是什么样,我们可以用它存储一些简单类型的数据或二进制数据,也可以自己定义存储规范,用来存储复杂的文本数据。其实我们可以直接存储json格式的数据在文件中,借助Gson类进行对象和json格式之间的转换,使用很方便。上次我就在应用中用文件缓存了数据,比起SQLLite,有时文件存储要方便一些,因为它不用进行创建数据库,建表等操作。
内部存储:Context提供了很方便的打开文件的方法。可以使用Context类提供的openFileOutput (),和openFileInput ()进行文件写入和读取,进行缓存的设置和读取,需要注意的是,这里传入的文件名是带有文件后缀的。
注意:在读写是文件时可以加入读写缓冲,加快读写效率。
以下是文件存储的内部存储的例子(以存储字符串为例):
为了以后使用方便,可以先定义一个文件缓存的工具类。
使用
使用文件缓存工具类时,直接调用它对外提供的函数就可以,将需要数据以字符串形式存,我们可以自定义数据存储格式,比如说以JSON串存储。以上代码中,缓存文件名写到文件缓存的类中,使用的时候可以直接调用。
提示:可以在Activity的onResume()的方法中使用获取缓存的操作(结合Activity来看),在onPause()是使用设置缓存的操作(暂停,跳转到其他Activity时调用这个方法)。
在应用中我们可以根据是否有网络或着缓存是否过期来判断是否从文件中获取缓存数据。以下是判断缓存是否过期的方法。
最后总结一下Context中获取内部存储和外部存储文件路径的方法。这些目录下的文件都会随着应用的卸载而被删除。
context.getFilesDir():获取手机内置存储器的/data/data/application package/files目录,这个位置放存储文件。
context.getCacheDir():获取手机内置存储器的/data/data
您可能关注的文档
- 《数学归纳法及应用举例》第一课说课方案.doc
- 《工作场所职业卫生监督管理规定》解读.ppt
- 《感受文化影响》课件.ppt
- 《按照传统既是食品又是中药材的物质目录(2013版)》(征求意见稿).doc
- 《数字电子技术基础》第五版.ppt
- 《思想道德修养与法律基础》课程电子教案之第五章.ppt
- 《春酒》教学设计.doc
- 《材料科学与工程基础》.doc
- 《桂花雨》蒋利娟.doc-昆山市新镇中心小学校.doc
- 《新型建筑材料》第一章建筑材料的基本性质课堂笔记-奥鹏教育.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)