JingBin's Home

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

前提

Android五种数据存储方式:

  1. 使用SharedPreferences存储数据
  2. 文件存储数据
  3. SQLite存储数据
  4. ContentProvider
  5. 网络存储

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

正文

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

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

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

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

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

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

文件缓存是不稳定的,手机存储空间不足时,可能会删除文件缓存中的内容。

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

参考资料