当前位置: 代码迷 >> Android >> Android下载网络上的图片的有关问题
  详细解决方案

Android下载网络上的图片的有关问题

热度:15   发布时间:2016-04-28 07:42:16.0
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();
  相关解决方案