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

前提

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

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

正文

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

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

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

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

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

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

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

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

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值