首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

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

2013-10-17 
Android下载网络上的图片的问题我在做一个下载网络上的图片的程序。我使用Handler开启一个子线程来执行读取

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();

热点排行