Maison  >  Article  >  Java  >  Explication détaillée du cycle de vie des activités dans le développement Android

Explication détaillée du cycle de vie des activités dans le développement Android

高洛峰
高洛峰original
2017-01-07 16:19:121468parcourir

Les exemples de cet article décrivent le cycle de vie de l'activité Android. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

La classe d'activité est dans le package android.app et le système d'héritage est le suivant :

1.Java.lang .Object

2. android.content.Context

3.android.app.ApplicationContext

4.android.app.Activity

l'activité est distincte et utilisé pour gérer les opérations des utilisateurs. Presque toutes les activités doivent traiter avec des utilisateurs, donc la classe d'activité crée une fenêtre. Les développeurs peuvent placer l'interface utilisateur sur la fenêtre créée par l'activité via l'interface setContentView(View). Lorsque l'activité pointe vers la fenêtre plein écran, elle peut le faire. également être implémenté d'autres manières : en tant que fenêtre flottante (via la collection de thèmes de windowIsFloating), ou intégrée dans d'autres activités (en utilisant ActivityGroup). La plupart des sous-classes d'activité doivent implémenter les deux interfaces suivantes :

① L'interface onCreate(Bundle) est l'endroit où l'activité est initialisée. Ici, vous pouvez généralement appeler setContentView(int) pour définir l'interface utilisateur définie dans le fichier de ressources. Utilisez findViewById(int) pour obtenir la fenêtre définie dans l'interface utilisateur.

② L'interface onPause() est l'endroit où l'utilisateur est prêt à quitter l'activité. Ici, toutes les modifications doivent être soumises (généralement utilisées par ContentProvider). save data ).

Pour utiliser Context.startActivity(), toutes les classes d'activité doivent avoir des éléments « d'activité » associés définis dans le fichier AndroidManifest.xml.

La classe d'activité est une partie importante du cycle de vie des applications Android.

Cycle de vie des activités

Les activités du système sont gérées par une pile d'activités. Lorsqu'une nouvelle activité est démarrée, elle sera placée en haut de la pile et deviendra une activité en cours d'exécution. L'activité précédente restera dans la pile et ne sera plus placée au premier plan jusqu'à la fin de la nouvelle activité.

L'activité a quatre états essentiellement différents :

1. Au premier plan de l'écran (en haut de la pile d'activité), elle est appelée état actif ou en cours d'exécution (actif ou en cours d'exécution)

2. Si une activité perd le focus mais est toujours visible (une nouvelle activité non plein écran ou une activité transparente est placée en haut de la pile), elle est appelée en pause. Une activité suspendue reste active (conserve tous les états, les informations sur les membres et la connexion au gestionnaire de fenêtres), mais sera supprimée si la mémoire système est extrêmement faible.

3. Si une Activité est entièrement recouverte par une autre Activité, elle est dite Arrêtée. Il conserve toujours toutes les informations sur l'état et les membres, mais il n'est plus visible, donc sa fenêtre est masquée et l'activité arrêtée sera supprimée lorsque la mémoire système devra être utilisée ailleurs.

4. Si une activité est à l'état Pause ou Arrêté, le système peut supprimer l'activité de la mémoire. Le système Android utilise deux méthodes pour la supprimer, soit en exigeant la fin de l'activité, soit en la supprimant directement. processus. Lorsque l'activité est à nouveau présentée à l'utilisateur, elle doit redémarrer et réinitialiser l'état précédent.

La figure ci-dessous montre les transitions d'état importantes d'Activity. La boîte rectangulaire indique l'interface de rappel d'Activity entre les transitions d'état. Les développeurs peuvent surcharger l'implémentation pour exécuter le code pertinent. État.

Explication détaillée du cycle de vie des activités dans le développement Android

Dans l'image ci-dessus, Activity comporte trois cycles clés :

1 Le cycle de vie complet, de onCreate(Bundle) à onDestroy() Finish. . L'activité définit tous les états "globaux" dans onCreate() et libère toutes les ressources dans onDestory(). Par exemple, si une activité a un thread exécuté en arrière-plan pour télécharger des données depuis le réseau, l'activité peut créer le thread dans onCreate() et arrêter le thread dans onDestory().

2. Le cycle de vie visible commence à partir de onStart() et se termine par onStop(). Pendant ce temps, l'activité est visible à l'écran, même si elle ne peut pas être au premier plan et ne peut pas interagir avec l'utilisateur. Entre ces deux interfaces, il est nécessaire de conserver les données et les ressources de l'interface utilisateur affichées à l'utilisateur. Par exemple, vous pouvez enregistrer un IntentReceiver dans onStart pour écouter les modifications de l'interface utilisateur provoquées par les modifications des données. Vous pouvez l'enregistrer dans onStop() Désenregistrer dans . onStart() et onStop() peuvent être appelés plusieurs fois car l'activité peut basculer entre visible et masqué à tout moment.

3. Le cycle de vie du premier plan commence par onResume() et se termine par onPause(). Pendant ce temps, l’activité est au premier plan de toutes les activités et interagit avec l’utilisateur. L'activité peut fréquemment basculer entre les états de reprise et de pause, par exemple : lorsque l'appareil se prépare à dormir, lorsqu'un résultat de traitement d'activité est envoyé et lorsqu'une nouvelle intention est envoyée. Le code de ces méthodes d’interface doit donc être très léger.

Le cycle de vie complet de l'activité est défini dans les méthodes d'interface suivantes, et toutes les méthodes peuvent être surchargées. Toutes les activités doivent implémenter onCreate(Bundle) pour initialiser les paramètres. La plupart des activités doivent implémenter onPause() pour soumettre les données modifiées. Actuellement, la plupart des activités doivent également implémenter l'interface onFreeze() pour restaurer l'état de onCreate(Bundle). le réglage.

public class Activity extends ApplicationContext {
protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onFreeze(Bundle outIcicle);
protected void onPause();
protected void onStop();
protected void onDestroy();
}

J'espère que cet article sera utile à tout le monde dans la programmation Android.

Pour des articles plus détaillés sur le cycle de vie des activités de développement Android, faites attention au site PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn