bsegonnes Posté(e) 18 février 2010 Posté(e) 18 février 2010 Après des mois de recherche, j'a enfin trouvé comment les récupérer proprement et afficher un beau message à la place du 'plantage' de l'Activity. Cà peut servir à d'autres.... : try { methodeTropGourmande(); } catch(java.lang.OutOfMemoryError e) { pliens de variables = null; System.gc(); System.runFinalization(); } if (variable==null) { handlerDocumentReader.post(new Runnable() { public void run() { // final AlertDialog.Builder builder = new AlertDialog.Builder(readerActivity); builder.setMessage(Global.resources.getString(R.string.file_too_big)) .setCancelable(false) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { activity.finish(); // close window } }); AlertDialog alert = builder.create(); alert.show(); } // end of run() } // end of Runnable ); // end of post() (j'ai pas réussi à trouver comment créer une page sur le Wiki)
thomas.l Posté(e) 18 février 2010 Posté(e) 18 février 2010 Peut être préciser que l'appel à System.gc(); ne sert à rien si vous ne libérez pas des ressources immédiatement ( pliens de variables = null; ) car l'OutOfMemoryError est due à l'incapacité du GarbageCollector à libérer de la mémoire. Si dans le catch, vous tentez d'instancier de nouveaux objets vous risquez de tout replanter à nouveau.
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.