Android下载网络上的图片的问题
我在做一个下载网络上的图片的程序。
我使用Handler开启一个子线程来执行读取图片的操作。
handler.post(new Runnable(){
@Override
public void run() {
//这里下载数据
try{
URL url = new URL(params);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream inputStream=conn.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
Message msg=new Message();
msg.what=1;
handler.sendMessage(msg);
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
程序运行到connect这一句就报错了。
logcat中还有NetworkOnMainThreadException。
我明明是在子线程中运行的,怎么还会报这个错?
android 线程
[解决办法]
post(runnable)只是异步的去执行一个方法,这个方法还是在主线程执行的,并没有开线程,
你应该new Thread(new runnable).start();
[解决办法]
你用的 handler.post 是主线程,默认的消息队列是主线程,不是子线程。
new Thread(){
public void run(){
}
}.start();