解决android.os.NetworkOnMainThreadException

1、MainThread的OnCreate函数添加

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
        .detectDiskReads().detectDiskWrites().detectNetwork()
        .penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
        .detectLeakedSqlLiteObjects().detectLeakedClosableObjects()
        .penaltyLog().penaltyDeath().build());
        
        
2、 添加子线程,用子线程进行网络访问
new Thread(){  
   @Override  
   public void run()  
   {  
   //把网络访问的代码放在这里     
  }  
}.start();  


3、 继承AsyncTask类
class DownImage extends AsyncTask {  
 
    private ImageView imageView;  
 
    public DownImage(ImageView imageView) {  
        this.imageView = imageView;  
    }  
 
    @Override  
    protected Bitmap doInBackground(String... params) {  
        String url = params[0];  
        Bitmap bitmap = null;  
        try {  
            //加载一个网络图片  
            InputStream is = new URL(url).openStream();  
            bitmap = BitmapFactory.decodeStream(is);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return bitmap;  
    }  
 
    @Override  
    protected void onPostExecute(Bitmap result) {  
        imageView.setImageBitmap(result);  
    }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值