雷鸣的游戏人生 2012-11-26 09:10 采纳率: 66.7%
浏览 5313
已结题

android异步获取图片并且本地存储的后续问题

我已经实现了头像图片的异步加载以及头像图片的下载及本地保存。
实现方法及源代码请见我的博文:图片的异步加载及图片本地缓存

现在出现了一个后续的问题由于是头像,所以我使用了用户的ID作为头像的名称,例如现在我有3个好友分别是user1,user2,user3,以及我自己myUser.
那么第一次读取过后我本地的头像就为user1.jpg,user2.jpg,user3.jpg,myUser.jpg.
好了问题来了,当我的好友们的头像发生变化的时候,我去读取的时候首先检查的是本地是否有这样图片,那么本地是有图片的,则不会去服务器下载了,但是就没有办法获取到最新的头像了。
当然在我的app里面有清除本地缓存的功能,但是不可能因为一个人头像变化就把所有的头像图片资源全部清除了吧。
不知道有没有什么好的建议和方法呢?
我现在的思路有如下:
1.定时从服务器获取一次头像,比如1天2天或者一周什么的,虽然即时性不高,但是头像更改的频率一般的用户也不会太高。
2.服务器端加头像有更改的状态字段,那么当头像有更改的时候将该状态设置一下,但是因为头像都是跟着其他数据已XML的方式发送过来的,许多涉及到头像的地方那么都要加这一个统一的字段。同时我的方法里面也需要添加代码进行这个字段的判断检查,然后对应的重现下载图片。这样会在服务器和客户端都进行修改比较麻烦一点。

以上就是我的一些思路,不过感觉都还不是很好一样,请有经验的朋友如果好的建议和方法的请支点招,谢谢,说说解决方案就都行!欢迎交流~

  • 写回答

3条回答 默认 最新

  • Kill_it 2012-11-27 05:04
    关注

    你可以这样,写一个userbean,这个bean中有id和iconurl,所以这个id和url是对应的,当用户的icon更新后,他的url需要变,但是id不变,你每次请求到数据后通过这个iconurl去找缓存,你的icon缓存需要用url最为标示,如果url能找到缓存,就不用在从新加载图片,如果url找不到缓存,就从新去加载图片。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding