关于缓存机制的一些体会

本文详细介绍了如何通过在Android应用中引入天气预报缓存机制来解决加载延迟问题,提高用户体验。具体包括:1. 在初始化过程中启动天气信息下载线程;2. 下载成功后将数据序列化并存储;3. activity在onCreate中默认绘制从SharedPreferences中读取的天气信息;4. 实现重试机制以确保数据获取成功率。
摘要由CSDN通过智能技术生成

最近的一个android项目已经升级了第二个大版本,以前出现的一些问题都有效的得到了解决。今天早晨在用户使用时,又发现了一个新的问题。

在产品经过了初始化的加载之后便进入到了欢迎界面,欢迎界面中展示了用户的一些信息以及今日的天气。由于在进入欢迎界面后,程序才会启动一个新的线程去获取天气预报信息,但是此时初始化过程中下载各种数据的线程都已经启动,由于此时带宽压力较大,获取天气预报需要1分钟左右。所以这样就导致了整个界面天气预报部分一分钟左右没有信息。

虽然在经过一段时间的加载之后就能够有效展示出信息,但是这样也是用户不可接受的。假设如果我是用户,看到这样的情况也会产生各种不信任

在经过了仔细思考后,想到了在本地建立天气预报缓存内容的办法。缓存中始终存放的是目前最新的天气预报信息,如果下载线程能够获取到最新的数据,重新绘制天气界面即可。这样的好处就是即使下载失败,或者网络不通的情况下也能够展示出天气信息,从而能够不受限于网络的状况。


有了思路后,实现的过程还是比较简单的:

1、activity在oncreate中,启动天气信息的下载线程,下载成功后,将信息序列化,写入到SharedPreferences中,重新绘制天气信息

2、acvitity在oncreate中,默认绘制从SharedPreferences中取出的天气信息

3、如果线程获取信息失败,可以按照重试次数重新启动下载线程

这样做的好处就是将天气信息的获取与天气信息的显示解耦了,降低了耦合性。有的时候,策略也是非常重要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值