bsegonnes Posted February 18, 2010 Share Posted February 18, 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) Link to comment Share on other sites More sharing options...
thomas.l Posted February 18, 2010 Share Posted February 18, 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.