为了账号安全,请及时绑定邮箱和手机立即绑定

Android必学-异步加载

难度中级
时长 1小时57分
学习人数
综合评分9.70
220人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.5 逻辑清晰
http://www.imooc.com/opus/resource?opus_id=2961异步加载详细注释纯手打,分享一下

最新回答 / 慕粉初学者丛Ba
请问如果要实现点击列表项,打开一个WebView显示具体内容,应该如何实现,谢谢
如果我的解释对你有帮助请点赞,谢谢:)
然而这里使用了异步机制,也就是说先返回ConvertView,再等异步线程修改,这是闪的本质!由于教程里使每个异步线程人工阻塞了1s,那么上来有8个异步线程在运行(编号1-8),如果1s之内下滑了ListView比如说下滑了8个,那么新更新的8个item还是用的以前的内存,【并且】又开启了8个异步线程(编号9-16)。因为预先设定了一个默认图片,所以先显示绿色的默认icon图片。然后1-8号异步线程运行完毕,更新ImageView(闪),紧跟着9-16异步线程运行完毕,又更新imageView(闪),最终显示正确结果。这就是下滑时先显示默认图片,再闪一下错误图片,最后闪一下正确图片的本质过程。
我来说一下为什么会闪。这是【同时】使用ConvertView和异步机制造成的。一个屏幕一次显示8个item,当第9个item划进屏幕时,ListView对adapter说,返给我一个view,我要显示。adapter调用getView()方法,由于使用了缓存机制,getView()在初始化8个item以后所有返回的view(ConvertView)内存地址都是这8个中的。如果【不使用】异步机制加载图片,那么返回的这个ConvertView是被更新以后返给ListView使用的。效果是上滑屏幕没反应,等了半天,突然加载出来,但是不会闪。

最赞回答 / qq_Dreamkiller_0
程序退出之后,如果你的应用没有驻留服务,内存还是有可能被回收的,在对图片缓存情况下,为了保险可以在加一个硬盘缓存DiskLruCache,双缓基本满足日常看法了,内存中没有,硬盘中有,也不用去下载,除非内存与硬盘中都没有,程序在去下载。OK郭神的博客中有DiskLruCache使用方法。不谢http://blog.csdn.net/guolin_blog/article/details/28863651
真的不错,学到了很多

已采纳回答 / UP000
findviewbyid提示空指针,你看看对应listview的id有没有写错,然后看看引入的layout的名字有没有写错。
讲的真是好,正需要这样的视频!
讲的太好,受教了!
dky
不是handler可以收到全局的消息?
老师源码有吗
为毛不用ListView,BaseAdapter 0.0.
实际应用都很少用这种写法的,我觉得老师讲完之后应该多讲写实际开发中的用法

最赞回答 / 陈恩俊3205650
出来的是空白页的话,你可以设个断点试试,看看你的list里面有没有数据,有可能是你JSON解析那出问题了,或者一些你没注意到的地方,这一大节课我快看完了,程序是一直跟着做的,到目前看来没什么问题啊!
课程须知
1、了解异步处理的一般方法 2、掌握如何使用多线程进行异步加载 3、掌握如何使用ASyncTask进行异步加载 4、异步加载的缓存与优化
老师告诉你能学到什么?
本课程是Android中级课程 1、熟练掌握基本的Android应用程序开发方法

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消