452 votes

Cycle de vie d’activité Android - quelles sont toutes ces méthodes pour ?

Quel est le cycle de vie d’une activité Android ? Pourquoi y a tant de méthodes de sondage similaire ( , , ) appelée pendant l’initialisation et tant d’autres ( , , ) appelée à la fin ?

Lorsque ces méthodes sont appelées, et comment doivent ils être utilisés correctement ?

783voto

Yaqub Ahmad Points 10931

Voir dans l'Activité du Cycle de vie (au Développeurs Android).

Enter image description here

onCreate():

Appelée lorsque l'activité est créée. C'est là que vous devriez faire tous vos normal statiques mis en place: créer des vues, lier des données à des listes, etc. Cette méthode vous offre également un Bundle contenant la l'activité est déjà à l'état congelé, si il y en avait un. Toujours suivi par onStart().

onRestart():

Appelé après que votre activité a été arrêté, avant qu'il ne soit commencé de nouveau. Toujours suivi par onStart()

onStart():

Appelée lorsque l'activité devient visible pour l'utilisateur. Suivie par onResume() si l'activité est à l'avant-plan, ou onStop() si elle devient cachée.

onResume():

Appelée lorsque l'activité va commencer à interagir avec l'utilisateur. À ce pointez votre activité est en haut de la pile par l'utilisateur d'entrée allant à lui. Toujours suivi par onPause().

onPause ():

Appelés dans le cadre de l'activité du cycle de vie d'une activité va dans le fond, mais n'a pas (encore) été tué. La contrepartie de onResume(). Lorsque l'activité B est lancé à la face de l'activité, ce callback sera appelé sur A. B ne sera pas créé jusqu'à ce qu'Un de onPause() renvoie, alors assurez-vous de ne pas rien faire de longues ici.

onStop():

Appelé lorsque vous n'êtes plus visible pour l'utilisateur. Vous serez à côté de recevez onRestart(), onDestroy(), ou rien, selon plus tard, l'activité de l'utilisateur.

Notez que cette méthode ne peut jamais être appelé, en cas de mémoire insuffisante où le système ne dispose pas de suffisamment de mémoire pour garder votre activité processus en cours d'exécution après son onPause() la méthode est appelée.

onDestroy():

Le dernier appel que vous recevez avant votre activité est détruite. Cette peut se produire soit parce que l'activité est la finition (quelqu'un l'a appelé finish (), ou parce que le système est temporairement en train de détruire cette exemple de l'activité pour économiser de l'espace. Vous pouvez faire la distinction entre ces deux scénarios avec la isFinishing() la méthode.

Lorsque l'Activité première fois les charges les événements sont appelés comme ci-dessous:

onCreate()
onStart()
onResume()

Lorsque vous cliquez sur le bouton Téléphone de l'Activité passe à l'arrière plan et le ci-dessous les événements sont appelés:

onPause()
onStop()

La sortie du numéroteur téléphonique et la ci-dessous les événements seront appelés:

onRestart()
onStart()
onResume()

Lorsque vous cliquez sur le bouton de retour OU d'essayer de terminer() de l'activité, les événements sont appelés comme ci-dessous:

onPause()
onStop()
onDestroy()

Des États D'Activité

Le système d'exploitation Android utilise une file d'attente de priorité pour les aider dans la gestion des activités en cours d'exécution sur l'appareil. En fonction de l'état d'un particulier Android est l'activité, il sera affecté d'une certaine priorité dans l'OS. Ce système de priorité permet Android identifier les activités qui ne sont plus en cours d'utilisation, permettant à l'OS de récupérer de la mémoire et des ressources. Le diagramme suivant illustre les états, une activité peut aller de travers, au cours de sa vie:

Ces états peuvent être divisés en trois groupes principaux comme suit:

Active ou l'Exécution d' Activités sont considérés comme actifs ou en cours d'exécution si elles sont au premier plan, aussi connu comme le haut de la pile. Ceci est considéré comme la plus haute priorité de l'activité dans l'Android de l'Activité de la pile, et en tant que tels ne seront tués par le système d'exploitation dans des situations extrêmes, comme si l'activité essaie d'utiliser plus de mémoire que ce qui est disponible sur l'appareil, car cela pourrait causer de l'INTERFACE utilisateur de devenir instable.

Pause - Lorsque l'appareil se met en veille, ou une activité est toujours visible mais partiellement caché par un nouveau, non complet-de la taille ou de la transparence de l'activité, l'activité est considérée comme suspendue. Pause activités sont encore en vie, qui est, ils maintiennent un état membre des informations, et de rester attaché à la fenêtre du gestionnaire. Ceci est considéré comme la deuxième priorité la plus élevée de l'activité dans l'Android de l'Activité de la pile et, en tant que tel, ne seront tués par le système d'exploitation si l'assassinat cette activité permettra de satisfaire les besoins en ressources nécessaires pour maintenir les Actifs/Running Activité stable et réactif.

Arrêté - Activités qui sont complètement obscurcie par une autre activité sont considérés comme arrêté ou en arrière-plan. Arrêté activités de toujours essayer de conserver leur état et membre de l'information aussi longtemps que possible, mais à l'arrêt des activités sont considérés comme la priorité la plus faible des trois états et, en tant que tel, le système d'exploitation va tuer les activités dans cet état premier de satisfaire les besoins en ressources de la hausse des activités prioritaires.

Exemple d'activité pour comprendre le cycle de vie*

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
    String tag = "LifeCycleEvents";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       Log.d(tag, "In the onCreate() event");
    }
    public void onStart()
    {
       super.onStart();
       Log.d(tag, "In the onStart() event");
    }
    public void onRestart()
    {
       super.onRestart();
       Log.d(tag, "In the onRestart() event");
    }
    public void onResume()
    {
       super.onResume();
       Log.d(tag, "In the onResume() event");
    }
    public void onPause()
    {
       super.onPause();
       Log.d(tag, "In the onPause() event");
    }
    public void onStop()
    {
       super.onStop();
       Log.d(tag, "In the onStop() event");
    }
    public void onDestroy()
    {
       super.onDestroy();
       Log.d(tag, "In the onDestroy() event");
    }
}

162voto

Nilesh Pawar Points 1330

L’ensemble est source de confusion depuis Google a choisi les noms de non-intuivitive au lieu de quelque chose comme suit :

Le diagramme d’activité peut être interprété comme :

enter image description here

23voto

Devrath Points 2552

ANDROID CYCLE DE VIE

Il y a sept méthodes qui permettent de gérer le cycle de vie d'une application Android:


Réponse pour ce sont toutes ces méthodes pour:

Prenons un scénario simple où le savoir dans quel ordre ces méthodes sont appelées nous aidera à donner une clarté pourquoi ils sont utilisés.

  • Supposons que vous utilisez une application calculatrice. Trois méthodes sont appelées à succession pour démarrer l'application.

onCreate() - - - > onStart() - - - > onResume()

  • Quand je suis à l'aide de l'application calculatrice, soudain, un appel vient de la. Le calculateur de l'activité se passe à l'arrière-plan et une autre activité à dire. Traiter avec l'appel vient au premier plan, et maintenant deux méthodes sont appelé à la succession.

onPause() - - - > onStop()

  • Maintenant dire que j'ai fini la conversation sur le téléphone, le calculateur l'activité est au premier plan de l'arrière-plan, de sorte que les trois méthodes sont appelés à la succession.

onRestart() - - - > onStart() - - - > onResume()

  • Enfin, dire que j'ai terminé toutes les tâches dans l'application calculatrice, et je souhaitez quitter l'application. Plus loin, deux méthodes sont appelées à la succession.

onStop() - - - > onDestroy()


Il existe quatre états, une activité peut éventuellement exister:

  • État De Départ
  • État En Cours D'Exécution
  • État De Pause
  • L'état d'arrêt

État de départ consiste à:

La création d'un nouveau Linux processus, l'allocation de mémoire pour les nouveaux objets de l'INTERFACE utilisateur et de la configuration de l'ensemble de l'écran. Ainsi, la plupart du travail est en cause ici.

État en cours d'exécution implique:

C'est l'activité (de l'etat) qui est actuellement sur l'écran. Ce seul etat gère des choses telles que taper sur l'écran, et en les touchant et en cliquant sur des boutons.

État de pause implique:

Lorsqu'une activité n'est pas au premier plan et c'est plutôt dans l'arrière-plan, puis l'activité s'est dit en état de pause.

L'état d'arrêt consiste à:

Un arrêt de l'activité ne peut être acheté en premier plan par le redémarrer et il peut aussi être détruits à tout point dans le temps.

L'activité de gestionnaire gère tous ces etats de façon à ce que l'expérience de l'utilisateur et de la performance est toujours à son meilleur, même dans les scénarios où la nouvelle activité s'ajoute aux activités de

9voto

Masiar Points 2623

À partir de l'Android Développeurs de page,

onPause():

Appelée lorsque le système est sur le point de commencer la reprise d'une activité précédente. Il est généralement utilisé pour commettre des modifications non enregistrées des données persistantes, arrêt des animations et d'autres choses qui peuvent être consommatrices de CPU, etc. Les implémentations de cette méthode doit être très rapide, parce que la prochaine l'activité ne sera pas repris jusqu'à ce que cette méthode retourne. Suivie par soit onResume() si l'activité revient à l'avant, ou onStop() si elle devient invisible pour l'utilisateur.

onStop():

Appelée lorsque l'activité n'est plus visible pour l'utilisateur, car une autre activité a été reprise et est couvrant celui-ci. Cela peut se produire, soit parce qu'une nouvelle activité est en cours de démarrage, un existant est en face de celui-ci, ou celui-ci est détruit. Suivi par onRestart() si cette activité est de revenir à interagir avec l'utilisateur, ou onDestroy() si cette activité est de s'en aller.

Supposons maintenant qu'il y a trois Activités et vous aller de A à B, puis onPause sera appelé maintenant de B à C, alors onPause de B et onStop sera appelé.

La pause de l'Activité devient un Cv et Arrêté obtient Redémarré.

Lorsque vous appelez this.finish(), onPause-onStop-onDestroy sera appelée. La principale chose à retenir est: pause Activités Arrêtée et un arrêt de l'activité est Détruite à chaque fois que Android a besoin de mémoire pour d'autres opérations.

J'espère que c'est assez clair.

1voto

Faakhir Points 346

La meilleure Application de démo pour comprendre le Cycle de vie de l’activité est ici apk fichier joint.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X