Le cycle de vie d'une application Android

guide-de-base-programmation-android-2

Lorsque vous commencez à programmer dans un langage comme C ++ ou Java, la première chose qui est enseignée est la méthode principale, le point que le système d'exploitation appellera lorsque nous lancerons notre application.

Dans Android, il n'y a pas de méthode principale en tant que telle, mais il existe plusieurs méthodes de notre activité qui seront appelées par SSOO lorsqu'elles se produiront. événements importants. Dans ce chapitre, nous étudierons en profondeur ce que sont ces événements et comment cela fonctionne. le cycle complet d'une activité d'Android. La documentation officielle offre une explication détaillée de ce sujet, ici nous étudierons les éléments les plus importants ainsi que quelques erreurs courantes lors de leur traitement.

Le cycle de vie d'Android suit ce schéma:

Android-cycle de vie

Événements du cycle de vie

  1. onCreate (Bundle)
    • Représente le moment où l'activité est créée. Cette méthode sera normalement générée par l'assistant lors de la création d'une nouvelle activité sur Android, et c'est là que nous créerons tout ce dont l'activité aura besoin. Si nous avons précédemment enregistré les données d'activité dans un objet Bundle, nous pouvons l'utiliser pour le régénérer. Normalement, nous ne l'utilisons pas.
  2. onStart ()
    • L'activité se poursuivra à être à l'écran, bien que pas nécessairement visible. Si nous venons d'un arrêt, nous passerons d'abord par onRestart ().
  3. onRestart ()
    • Précédente à onStart () lorsque nous venons d'un appel à onStop ().
  4. pour résumer()
    • L'activité commencera répondre à l'interaction de l'utilisateur.
  5. onPause ()
    • L'activité sera arrête de répondre à l'interaction de l'utilisateur.
  6. onStop ()
    • L'activité est allée complètement à second plan.
  7. onDestroy ()
    • L'activité il sera détruit et vos ressources libérées.

Lorsque nous devons implémenter l'une de ces méthodes, nous le ferons en ajoutant à notre activité avec ces profils:

classe publique MyActivity extend Activity {protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); ...} protected void onStart () {super.onStart (); ...} protected void onRestart () {super.onRestart (); ...} protected void onResume () {super.onResume (); ...} protected void onPause () {... super.onPause (); } protected void onStop () {... onStop (); } protected void onDestroy () {... super.onDestroy (); }}

Il est important de maintenir appel de méthode de superclasse pour ne pas rencontrer de surprises. Les tâches de chaque événement qui sont au-dessus de notre activité doivent être maintenues. Cet appel ira au début des événements d'entrée et à la fin des événements de sortie. De cette façon, nous éviterons les surprises, puisque les éléments de l'activité dont nous avons besoin mais qui ne seront pas sous notre contrôle seront créés avant de les utiliser, et seront détruits par la suite.

Nous n'avons pas besoin d'ajouter tous les événements, ceux dont nous n'avons pas besoin utiliseront l'implémentation par défaut. Les méthodes que nous utiliserons souvent - et il n'est pas recommandé de toucher les autres - sont onCreate, onPause et onRestart.

La signification de onCreate est claire: c'est l'endroit où nous chargerons les ressources dont nous avons besoin, les vues et tout ce dont nous avons besoin. Pour la sortie, la seule méthode sur laquelle nous allons nous concentrer est onPause. La raison pour éviter onStop et onDestroy est que nous n'avons aucun contrôle sur eux. onPause s'exécutera chaque fois que l'application sortira du premier plan, tandis que les deux autres seront exécutées par le système d'exploitation en fonction de vos besoins. Ils ne peuvent jamais être exécutés! Ceci est fait pour éviter le coût de création de l'activité encore et encore si nous passons de l'activité au bureau et vice versa, et le système d'exploitation ne libérera les ressources utilisées que s'il en a besoin, et il n'a pas à s'occuper de tout les processus ouverts.

Cela implique que nous supposerons que l'application mourra après l'exécution de onPause, et que c'est la nôtre dernière chance de sauvegarder des données que nous devons sauvegarder et arrêter les services que nous utilisons, tels que la géolocalisation. Si nous avons arrêté des services, l'emplacement approprié pour les redémarrer est onRestart.

Les autres méthodes que nous n'aurons pas besoin d'utiliser beaucoup. Un cas courant dans lequel nous en aurons besoin sera lorsque nous intégrons des bibliothèques tierces, telles que Facebook ou Flurry. Dans ces cas, il nous sera demandé de faire correspondre les méthodes de notre activité à votre code. Par exemple, pour enregistrer une session Flurry, il nous sera demandé de démarrer la session dans la méthode onStart.

Quelques idées utiles

  • Rappelez-vous à quoi sert chaque événement. Vous aurez toujours besoin de onCreate, et très souvent vous aurez besoin de onPause et onResume pour arrêter et relancer les services les plus consommateurs.
  • Ne touchez pas aux autres événements si vous n'en avez pas expressément besoin.
  • Ne faites pas confiance à onStop et onDestroy, ils pourraient ne jamais être appelés. Enregistrez tout ce dont vous avez besoin dans onPause.
  • Évitez d'utiliser des variables statiques non finales. L'application peut toujours être chargée à votre retour et conservera les valeurs qu'elle a laissées. Si vous n'avez pas d'autre choix que de les utiliser, assurez-vous de réinitialiser leurs valeurs lorsque vous revenez au premier plan.

Plus d'informations - Guide de base de la programmation sous Android


Ça t'intéresse:
Comment supprimer les virus sur Android
Suivez-nous sur Google Actualités

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Blog Actualidad
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.