2016-04-09 11 views
-1

Bir resim yükleyip parse.comNasıl parse.com bir görüntüyü aldığımda android.os.NetworkOnMainThreadException düzeltmek için?

'dan bir görüntü alıyorum ve android.os.NetworkOnMainThreadException var, herkes bana yardımcı olabilir ve nasıl çözüleceğini söyleyebilirim?

Teşekkür

final ParseFile fileObject = (ParseFile) parseObject.get("ImageFile"); 

    URL url = new URL(fileObject.getUrl()); 

    Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
    imageView.setImageBitmap(bmp); 

    linearLayout.addView(imageView); 
+0

Olası yinelenen [android.os.NetworkOnMainThreadException Nasıl düzeltilir?] (Http://stackoverflow.com/questions/6343166/how-to-fix-android-os-networkonmainthreadexception) –

cevap

0

kullanın favori image-loading library gibi Picasso, arka planda görüntü indirmek ve uyumsuz ImageView doldurmak için. Veya arka plan işinde görüntüyü indirmek için arka plan çalışmanızı (ör. AsyncTask) yapın, ardından ana uygulama iş parçacığındaki ImageView numaralı güncelleştirmeyi ve önbelleğe alma işlemlerini yapın.

final ParseFile fileObject = (ParseFile) parseObject.get("ImageFile"); kodunuzun da arka planda yapılması gerekebilir; Parse kullanmadim ve bu yüzden API'nin detaylarini bilmiyorum.

0
Upload and Download Image(like Time consuming process) you should do that in Background thread.You tried to get or upload images in Main thread so got android.os.NetworkOnMainThreadException.Use Async task to do that 

class ImageDownload extends AsyncTask<Object, Void, Object> 
    { 

     Bitmap myBitmap=null; 
     @Override 
     protected void onPreExecute() { 
      // TODO Auto-generated method stub 
      super.onPreExecute(); 

      //ShowDialog(); 
     } 

     @Override 
     protected Object doInBackground(Object... params) 
     { 
      final ParseFile fileObject = (ParseFile) parseObject.get("ImageFile"); 

    URL url = new URL(fileObject.getUrl()); 

    Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 

      return null; 
     } 

     @Override 
     protected void onPostExecute(Object result) 
     { 
      super.onPostExecute(result); 


      HideDialog() 

      //Update UI here 
      linearLayout.addView(imageView); 
      imageView.setImageBitmap(bmp); 

     } 

    } 
ait
İlgili konular