为应用添加数据持久存储功能主要涉及到两大处理工程:
- 将数据保存到文件系统
- 应用启动时重新加载保存的数据.
保存数据时,首先将数据转换成可保存的格式,然后将数据写入文件;
读取文件时,则刚好相反.首先从文件中读取格式化的数据,然后将其解析为应用所需的内容.
什么时候保存数合适呢?
适用于移动应用的一个普遍规则是:尽可能频繁的保存数据,尤其是用户数据修改行为发生时.如果数据
保存过于频繁,应注意不要拖慢应用的运行,影响到用户的使用体验.我们的代码中,如果数据只要有更新,
都是重新将全部数据写入文件中.考虑到应用的规模,数据量小的时候这样做不会太耗时.然而,对于超频繁
数据保存的应用,应考虑采用某种方式只保存修改过的数据,而不是每次都保存所有数据,比如说使用SQLite
等.
选择内部存储还是外部存储
所有的Android设备都将文件存储区域分为两部分:内部存储和外部存储。这种命名来源于早期的Android系统,当时大部分的设备都有一个内置的不可变的内存(内部存储),另外还有一个可移除的存储介质,如SD卡(外部存储),后来即使设备没有可移除的存储介质了,依然习惯性地将永久存储空间划分为“内部”和“外部”,并且无论外部存储是否可以移除,这两部分存储空间的API行为都是一样的。
内部存储
1.总是可用的
2.内部存储空间内的文件默认只有你的App可以访问
3.当用户卸载了你的App,系统从内部存储空间中移除所有你的App相关的文件
当你希望用户和其他App都不能访问你的文件时,内部存储是最好的选择。
外部存储
1.并非总是可用的,因为用户可能将外部存储作为USB存储,某些情况下甚至会从设备上移除外部存储
2.它是大家都可以访问的,存储在这里的文件可以被其他应用程序访问
3.当用户卸载了你的App,系统仅仅会移除存储在通过 getExternalFilesDir()获取到的路径中的该App相关的文件
当你的文件不需要访问限制,或者你想将文件分享给其他的App,或者允许用户通过电脑来访问它,那么外部存储是最好的选择。。