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

Android必学-异步加载

难度中级
时长 1小时57分
学习人数
综合评分9.70
220人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.5 逻辑清晰
好难啊,全是参数无限传递,感觉老师讲的太敷衍了 没给我们理清思路,面向对象的编程太深奥太复杂,根本难以从一个菜鸟的角度看这些复杂的操作,问题是思绪没理清老师就一直不停的改改改,头都晕了
不知道为什么,我用getTag()处理,反复拖动listView后,之前加载的图片会逐渐消失,不处理还不出错,为啥

最新回答 / qq_文若_03781631
bufferReader里面需要传入一个InputStreamReader对象的嘛!url接口取得的只是一个inputStream
这里的mImageView.getTag() 之所以与mUrl 会有不相等的情况,是由ListView的回收机制造成的,比如item10是回收item1显示的,那么假如显示到item10时,item1请求的图片才返回,mUrl是item1的Url,但是mImageView.getTag()获取到的确实item10请求之前设置的Tag值(因为两个imageview是同一个),此Tag值也就是新的Url,所以会不相等。
通过LruCache将图片和文字的内容缓存到内存里,不会因为占用内存而引起异常吗?

最新回答 / chenzheng8975
源码:http://blog.csdn.net/chenzheng8975/article/details/53893666
使用Andorid Studio的同学如果遇到Runtime Exception问题,可以试试点击工具栏的 Build->Clean Project->Rebuild Project 然后重新运行APP 试试
表示已经懵比了 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

已采纳回答 / allen0503
就是之前 item.xml文件里的 ImageView

最新回答 / 慕丝8967846
可以上。估计是你的代码有问题,在mainactivity中的onCreate方法中没有使用异步线程。最好把代码放上来吧

最新回答 / 叫我二哈
我只能告诉你发挥作用的代码是在哪?但是如何解决我也不知道如果你是在getView()方法中ImageLorder=new ImageLorder()的话,就不会出现这个问题。但如果是在构造方法中初始化的,就会出现这个问题。
private Handler mHandler=new Handler(){
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
if(mImageView.getTag().equals(mUrl))
{
mImageView.setImageBitmap((Bitmap) msg.obj);
}
}


};


这个public,让我找了很久,这才是图片一致没跟换的原因
求源码,245882623@qq.com

最赞回答 / 叫我二哈
看看是不是把mImageView和mUrl定义在了ImageLorder里,如果有的话,删除,重新声明在AsyncTask中
讲得很好,思路清晰
课程须知
1、了解异步处理的一般方法 2、掌握如何使用多线程进行异步加载 3、掌握如何使用ASyncTask进行异步加载 4、异步加载的缓存与优化
老师告诉你能学到什么?
本课程是Android中级课程 1、熟练掌握基本的Android应用程序开发方法

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消