问题 Bean对象
没理解 为什么要将 那3个变量 ,打包成一个Bean对象。
没理解 为什么要将 那3个变量 ,打包成一个Bean对象。
2016-01-08
在显示GridView的时候,适配器的getView方法会被多次调用,因此loadImage也会被多次调用,而每次调用loadImage都会通过refreashBitmap方法来mUIHandler.sendMessage,而Task中refreashBitmap会新的线程中去执行,因此也许会有多个线程并发执行,也许当执行某一个loadImage的时候,正好mUIHandler的handleMessage也刚好在处理一个非该loadImage而sendMessage的message(注意:mUIHandler的handleMessage是在主线程中),如果不用ImgBeanHolder,就可能导致用msg.obj来取bitmap与刚才说的loadImage的参数的path和imageView发生错乱
在mUIHandler中的handleMessage中不能直接用msg.obj来取bitmap(前提是在sendMessage的时候只在msg.obj中绑定bitmap)然后根据loadImage方法参数path和imageView来设置图片,因为mUIHandler中的handleMessage在执行的时候所获得的bitmap不一定是当前的(与之对应的)path和imageView(也就是当前loadImage方法的参数path和imageView,因为mUIHandler是在loadImage中初始化的,所以mUIHandler的handleMessage可以直接调用loadImage方法的参数path和imageView),因为我们会根据path用getBitmapFromLruCache方法在缓存中获取图片,或者异步去加载(开启新的线程去加载),加载完成后会回调mUIHandler中的handleMessage
举报