在android4.0以后的版本中,为了使得主界面流畅,所以设置了不允许在主线程中访问网络,为了安全,又不允许在其它线程中访问控件,这样就造成了ImageView等需要使用网络的控件更新时的问题,本文以Handler+Runnable的方式实现了ImageView控件显示网络图片.
在android4.0之后,如果在主线程中访问网络,会报一个android.os.networkonmainthreadexception的异常.因为在ui线程中访问网络的话,就要等待网络传输完成,期间就会阻塞线程,使界面卡住.
为了访问网络资源,可以开启一个线程,异步加载.但这个新线程又不具有更新控件的能力,所以就需要一个中间人来完成ui线程和网络线程的联系,本文使用的是消息机制,网络线程发送一个消息,ui线程中收到后执行相应工作.