公司最近随着版本的不断迭代有了广告页的需求。那么接下来我就总结下我们的思路以及实现方式。
1.每次打开启动页的时候请求网络广告信息(包含广告图片url,广告相关联的链接,版本号,图片id)。
2.从本地获取上次保存的广告信息缓存。
3.如果存在缓存信息,将缓存信息和当前请求出来的广告信息中的版本号或者图片Id进行判断是否需要下载图片,如果需要就下载图片保存到本地。并且在广告也展示缓存中的广 告信息。
如果不存在缓存信息,那就展示默认的背景图片。
4.将本次请求的广告信息缓存。
上边是主要的思路信息。
下面是一下细节问题。
1.我们使用glide加载本地路径的方式加载图片。
2.用android api下载 将图片File 以固定的filePath 保存到本地。
3.使用Acache保存请求出来的广告信息 。
4这里需要用到两个计时器CouontTimer(原生Api)---CountTimerA ,CountTimerB,作用分别是CountTimerA 负责加载广告的倒计时3秒。CountTimerB负责 每次请求广告信息的时间控制,我们将时间控制在3秒,如果在网络不好的时候,会请求不出数据。3秒过后,我们直接进入app主页。
5.由于有两个计时器,如果在3秒之后,闪屏页已经被销毁了,但是网络数据请求刚回来,相应的会操作View那么就会崩溃。所以我们要在请求广告信息成功或者失败的回调外层加上判断,只有当前页面没有被销毁才能加载页面。
6.测试的时候要考虑到网络的不同情况,网络不好,或者没有网络,都要保证闪屏页的正常显示。