2012-07-26 48 views
0

我有下面的類:android.os.NetworkOnMainThreadException成的AsyncTask

class CargaImgsParaAmpliar extends AsyncTask<Void, Void, Bitmap> { 

     final ProgressDialog progressDialog = new ProgressDialog(imagen.this); 

     protected void onPreExecute() { 
      progressDialog.setTitle(""); 
      progressDialog.setMessage("Cargando Imagen..."); 
      progressDialog.show(); 
     } 

     protected Bitmap doInBackground(Void... params) { 
      Bitmap mIcon1 = null; 
      URL url_value; 
      try { 
       url_value = new URL(StrUrl); 
       mIcon1 = BitmapFactory.decodeStream(url_value.openConnection().getInputStream()); 
      } catch (MalformedURLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      }catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      }   
      return mIcon1; 
     } 

     protected void onPostExecute(Bitmap imagen) { 
      m_imageView.setImageBitmap(urlImageToBitmap(StrUrl)); 
      progressDialog.dismiss(); 
     }  
    } 

我做內的AsyncTask互聯網放電過程中,它仍然給了我異常android.os.NetworkOnMainThreadException

我該如何解決這個問題?

+0

從哪裏執行這個AsyncTask? – user370305 2012-07-26 18:46:57

+0

在類GestureListener中的onDoubleTap方法中。 – Dracknes 2012-07-26 18:55:17

+0

你可以發佈'urlImageToBitmap'代碼。它有可能調用服務器。 'OnPostExecute'在UITHread上運行。 – 2012-07-26 18:56:23

回答

2

在我看來,urlImageToBitmap訪問網絡,但從onPostExecute(這是在UI任務上運行)執行。

而你似乎沒有在onPostExecuteimagen參數中做任何事情。因此在doInBackground中檢索到的圖像基本上丟失。

+0

哈打我吧:) – 2012-07-26 18:56:55

+0

是的,在這種方法中,我再次連接到互聯網。 完美,謝謝你的幫助,我會打電話給doInBackground。 – Dracknes 2012-07-26 19:07:22

+0

完美!謝謝@Codo – Dracknes 2012-07-26 19:15:07

相關問題