AsyncTask et la gestion des erreurs sur Android

Je suis la conversion de mon code à partir de l'aide de Handler à AsyncTask. Le dernier est excellent dans ce qu'il fait - mises à jour asynchrones et à la manipulation des résultats dans le main thread d'INTERFACE utilisateur. Ce qui est clair pour moi est de savoir comment gérer les exceptions si quelque chose se détraque dans AsyncTask#doInBackground.

La façon dont je le fais, c'est d'avoir un Gestionnaire d'erreurs et d'envoyer des messages. Il fonctionne très bien, mais est-il le "droit" de l'approche ou est-il la meilleure solution?

Aussi, je comprends que si je définir le Gestionnaire d'erreur comme un domaine d'Activités, il doit exécuter dans le thread de l'INTERFACE utilisateur. Cependant, parfois (très imprévisible) je vais avoir une Exception en disant que le code déclenchée à partir de Handler#handleMessage est en cours d'exécution sur le mauvais fil. Dois-je initialiser le Gestionnaire d'erreurs dans Activity#onCreate à la place? Placer runOnUiThread en Handler#handleMessage semble redondant mais il s'exécute de façon très fiable.

  • Pourquoi ne voulez-vous convertir votre code? Y avait-il une bonne raison?
  • c'est une meilleure pratique de codage au moins c'est comment je me sens
InformationsquelleAutor Bostone | 2009-11-16