Android 记一次"清除缓存"所导致的bug

来源:互联网 发布:vi设计软件下载 编辑:程序博客网 时间:2024/06/05 13:34

前提

Android五种数据存储方式:
1. 使用SharedPreferences存储数据
2. 文件存储数据
3. SQLite存储数据
4. ContentProvider
5. 网络存储

Android几种数据存储方式的应用场景

正文

前段时间由于很多人反馈页面无数据的bug,对此考究了一段时间,遂将结果记录于此。

之前:
设计的是,一个存储在SharedPreferences的状态值,控制页面是否取本地页面缓存,本地页面缓存也存储在SharedPreferences里。

这样如果用户清除了SharedPreferences的状态值,那就会请求网络数据,如果没有清除状态值,就会取本地页面缓存数据,也是取保存在SharedPreferences里的数据,这样是没有问题的。

之后:
由于可能页面缓存数据有点多,将存储方式改为了文件存储方式,而没有做存储不到数据的措施。误认为用户清空本地页面缓存数据的同时也清空了SharedPreferences里的数据,而没有采取取不到数据时的措施。

应用信息

清除数据:
清除数据主要是清除用户配置,比如SharedPreferences、数据库、文件储存等等,这些数据都是在程序运行过程中保存的用户配置信息,清除数据后,下次进入程序就和第一次进入程序时一样;

清除缓存:
缓存是程序运行时的临时存储空间,只会清空文件存储数据。

另外,如果需要持久化数据到本地且不可轻易更改的,还是使用过数据库储存为宜。

参考资料

  • Android五种数据存储方式
  • Android清除数据、清除缓存、一键清理的区别