android.os.NetworkOnMainThreadException出现这个错误一般是数据请求在主线程中进行的,所以这时候我们只要把耗时操作放到子线程中,更新UI在主线中操作,具体实现代码如下:
new Thread(new Runnable() {
@Override
public void run() {
//耗时操作,一般是网络请求
bitmap = getImageBitmap();
handler.sendEmptyMessage(0);
}
}).start();
handler = new Handler() {
@Override
//当有消息发送出来的时候就执行Handler的这个方法,这里进行更新UI
public void handleMessage(Message msg) {
super.handleMessage(msg);
code_img.setImageBitmap(bitmap);
}
};