2009-11-27 8 views
0

Je veux détecter quand un uncaught exception est arrivé dans mon application Android.Comment afficher une boîte de dialogue après que le thread a rencontré une exception non interceptée?

Une fois détecté, je veux afficher une boîte de dialogue de confirmation

Comment puis-je obtenir cette boîte de dialogue de confirmation pour afficher? Lorsque j'ai essayé différentes techniques, l'interface utilisateur ne répond pas et semble être figée.

Mon code répond à ceci:

new CatchAllExceptionHandler(this) is my custom handler 
Thread.setDefaultUncaughtExceptionHandler(new CatchAllExceptionHandler(this)); 

J'ai essayé ces deux implémentations de CatchAllExceptionHandler:

  1. Afficher une boîte de dialogue d'alerte
  2. Démarrer une activité qui affiche alors une boîte de dialogue d'alerte après onCreate

Ces deux méthodes échouent éd.

Donc ma question est: Comment faire pour que la boîte de dialogue de confirmation s'affiche correctement?

+0

Si vous mettez du code dans le gestionnaire qui écrit dans votre fichier journal, voyez-vous la sortie? –

Répondre

2

Vous essayez peut-être de faire vos opérations d'interface utilisateur sur un thread non-UI. Utilisez l'une des techniques disponibles (Handler, Handler#post, View#post, Activity#runOnUiThread, AsyncTask#onPostExecute) pour que votre travail d'interface utilisateur soit effectué sur le thread d'interface utilisateur.

+0

runOnUiThread a échoué – gregm

Questions connexes