bsegonnes Posté(e) 18 février 2010 Share 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) Lien vers le commentaire Partager sur d’autres sites More sharing options...
thomas.l Posté(e) 18 février 2010 Share 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.