Ceci est une en-tête optionnelle pour la Boîte à idée.

SUJET : relation entre le cycle de vie d'un AsyncTask et un Activity

relation entre le cycle de vie d'un AsyncTask et un Activity il y a 4 ans 11 mois #13

  • Anonymes
  • Portrait de Anonymes Auteur du sujet
  • Visiteur
  • Visiteur
Quelle est la relation entre le cycle de vie d'un AsyncTask et un Activity? Quels problèmes cela peut-il entraîner? Comment éviter ces problèmes?

relation entre le cycle de vie d'un AsyncTask et un Activity il y a 4 ans 11 mois #14

  • Android Corpo
  • Portrait de Android Corpo Auteur du sujet
  • Visiteur
  • Visiteur
Un AsyncTask n'est pas lié au cycle de vie de l'activité qui le contient. Ainsi, par exemple, si vous démarrez une tâche AsyncTask dans une activité et que l'utilisateur fait tourner l'appareil, l'activité sera détruite (et une nouvelle instance d'activité sera créée) mais la tâche AsyncTask ne mourra pas mais continuera à vivre jusqu'à ce qu'elle se termine.

Ensuite, lorsque la tâche AsyncTask se termine, plutôt que de mettre à jour l'interface utilisateur de la nouvelle activité, elle met à jour l'ancienne instance de l'activité (c'est-à-dire celle dans laquelle elle a été créée mais qui n'est plus affichée!). Cela peut entraîner une exception (du type java.lang.IllegalArgumentException: vue non attachée au gestionnaire de fenêtres si vous utilisez, par exemple, findViewById pour récupérer une vue à l'intérieur de l'activité).

Il peut également en résulter une fuite de mémoire, car l'AsyncTask conserve une référence à l'Activté, ce qui empêche l'activité d'être récupérée tant que l'AsyncTask reste en vie.

Pour ces raisons, l'utilisation d'AsyncTasks pour des tâches d'arrière-plan de longue durée est généralement une mauvaise idée. Au contraire, pour les tâches d'arrière-plan de longue durée, un mécanisme différent (tel qu'un service) doit être utilisé.

relation entre le cycle de vie d'un AsyncTask et un Activity il y a 4 ans 10 mois #15

  • Anonymes
  • Portrait de Anonymes Auteur du sujet
  • Visiteur
  • Visiteur
Comment obtenir IMEI / PAYS et Type de l'appareil par programmation dans Android?
Temps de génération de la page : 0.085 secondes