android – Problema fuori memory

Nella mia applicazione, sto scaricando le immagini dal web. Per questo, per la prima volta sto scaricando le immagini dal web e queste immagini sono memorizzate nella sdcard. La prossima volta, sto controllando queste immagini sono in sdcard o no. se sì, scaricando dal sdcard altrimenti sto scaricando dal web. Queste immagini vengono visualizzate come un elenco. Io sono ripetutamente (significa spostarsi in su / giù continuamente) scorrendo l'elenco poi la mia applicazione si è schiantata e sto ottenendo l'exception di memory. Come gestirlo. Qualcuno può aiutarmi.

stacktrace:

  • Unlimited / Dynamic ViewPager in entrambe le direzioni
  • Come posso aggiungere l'effetto gradiente al colore di background di TextView in un ListView?
  • Devo creare una barra degli strumenti per each attività nella mia applicazione Android?
  • ERRORE: ridimensionare la partizione e2fsck non rioutput con il codice di output 8
  • Errore di compilazione in "Utilizza l'esempio di accesso di Facebook"
  • NoClassDefFoundError android / support / v4 / animation / AnimatorCompatHelper
  • 09-12 13:40:42.640: ERROR/AndroidRuntime(3426): java.lang.OutOfMemoryError: bitmap size exceeds VM budget(Heap Size=7879KB, Allocated=3362KB, Bitmap Size=11402KB) 09-12 13:40:42.640: ERROR/AndroidRuntime(3426): at android.graphics.BitmapFactory.nativeDecodeFile(Native Method) 09-12 13:40:42.640: ERROR/AndroidRuntime(3426): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:355) 09-12 13:40:42.640: ERROR/AndroidRuntime(3426): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:433) 09-12 13:40:42.640: ERROR/AndroidRuntime(3426): at com.ibkr.elgifto.GiftCategories$itemlistdapter$4.getDrawableFromUrl(GiftCategories.java:830) 09-12 13:40:42.640: ERROR/AndroidRuntime(3426): at com.ibkr.elgifto.GiftCategories$itemlistdapter$4.run(GiftCategories.java:739) 09-12 13:53:32.450: INFO/WSP(332): [Receiver] next auto-sync alarm event is 180 mins later, at time: Mon Sep 12 16:53:32 GMT+05:30 2011 

    codice

     private Drawable getDrawableFromUrl(String imageUrl) { // TODO Auto-generated method stub String filename = imageUrl; filename = filename.replace("/", "+"); filename = filename.replace(":", "+"); filename = filename.replace("~", "s"); File elgiftoimagesref = new File("/sdcard/Elgiftoimages/"); elgiftoimagesref.mkdir(); final File file = new File(elgiftoimagesref, filename); BitmapDrawable SDdrawable = null; boolean exists = file.exists(); if (!exists) { try { URL myFileUrl = new URL(imageUrl); HttpURLConnection conn = (HttpURLConnection) myFileUrl .openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); final Bitmap result = BitmapFactory.decodeStream(is); is.close(); new Thread() { public void run() { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); if (result != null) { result.compress(Bitmap.CompressFormat.JPEG, 40, bytes); } try { FileOutputStream fo; fo = new FileOutputStream(file); fo.write(bytes.toByteArray()); fo.flush(); fo.close(); // result.recycle(); } catch (IOException e) { e.printStackTrace(); } } }.start(); BitmapDrawable returnResult = new BitmapDrawable(result); return returnResult; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (MalformsdURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } else { // Here i am getting the out of memory error. SDdrawable = new BitmapDrawable(BitmapFactory.decodeFile(file .toString())); return SDdrawable; } } 

    One Solution collect form web for “android – Problema fuori memory”

    Penso che tu non utilizzi il model ViewHolder per la list. In questo caso si suppone che si ottiene tale errore che tutte le voci di elenco saranno disponibili nella memory se è visibile o no. Utilizzando la memory di ViewHolder è assegnato solo quelle voci che sono visibili e sono attualmente sullo schermo. ViewHolder modelincreses la prestazione del 150% Per video tutorial su ViewHolder controlla questo . Se sei già implementato allora è il caso della perdita di memory si può fare riferimento a questo

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.