Quel est le cycle de vie de l’activité Android?

Dans mon article précédent, vous avez appris que les intentions nous permettaient d’envoyer des messages d’un composant Android à un autre. Eh bien, un type très important de composant est une activité.

Les activités sont un élément fondamental du développement d’applications Android. Et il est impossible de comprendre les activités sans comprendre également leurs cycles de vie. Dans cet article, vous apprendrez tout sur le cycle de vie des activités.

Cycle de vie des activités

Une activité est un écran unique sous Android. C’est comme une fenêtre dans une application de bureau ou un cadre dans un programme Java. Une activité vous permet de placer tous vos composants ou widgets d’interface utilisateur ensemble sur l’écran.

Il est important de comprendre qu’une activité a un cycle de vie: c’est-à-dire qu’elle peut être dans l’un des différents états, en fonction de ce qui se passe avec l’application et avec l’interaction de l’utilisateur.

Méthodes du cycle de vie

Examinons de plus près le cycle de vie d’une activité Android. Chaque fois que l’état de l’activité change, l’une des méthodes de cycle de vie suivantes est appelée sur la classe Activity.

onCreate(): Ceci est appelé lors de la première initialisation de l’activité. Vous devez implémenter cette méthode pour effectuer toute initialisation spécifique à votre activité.

onStart(): Ceci est appelé la première fois que l’activité est sur le point de devenir visible pour l’utilisateur, alors que l’activité se prépare à passer au premier plan pour devenir interactive. Une fois ce rappel terminé, le onResume() La méthode sera appelée.

onResume(): Lorsque l’activité entre dans cet état, elle commence à interagir avec l’utilisateur. L’activité continue dans cet état jusqu’à ce que quelque chose se passe pour détourner le focus de l’application ou de l’activité (comme un appel entrant). Lorsque cela se produit, le onPause() La méthode sera appelée.

onPause(): Cette méthode est utilisée pour suspendre les opérations qui ne devraient pas se produire lorsque l’activité est en pause. Un appel à cette méthode indique que l’utilisateur quitte l’application. Par exemple, dans une application de lecteur de musique, un appel entrant entraînera la transition de l’application vers un état de pause. Cela devrait couper ou mettre en pause la musique en cours de lecture. Lorsque l’utilisateur revient à l’application, le onResume() La méthode sera appelée.

onStop(): Cette méthode est appelée lorsque l’activité n’est plus visible dans l’application. Cela peut arriver, par exemple, lorsqu’une autre activité a été chargée et prend le plein écran de l’appareil. Lorsque cette méthode est appelée, l’activité est dite à l’état arrêté. Dans cet état, le système appelle soit le onRestart() pour ramener l’interactivité avec Activity. Ou il appelle le onDestroy() méthode pour détruire l’activité.

onDestroy(): Ceci est appelé avant que l’activité ne soit détruite. Le système appelle cette méthode lorsqu’un utilisateur met fin à l’activité ou parce que le système détruit temporairement le processus qui contient l’activité pour économiser de l’espace. Assurez-vous de libérer toutes les ressources que votre activité a créées dans cette méthode, sinon votre application aura une fuite de mémoire!

onRestart(): Ceci est appelé lorsqu’une activité redémarre après son arrêt.

En relation :  Où est allé le panneau de configuration du système sous Windows 10?

Démarrer une activité

La plupart des interactions des utilisateurs avec une application entraînent la modification de l’activité active. Ainsi, une application effectue plusieurs transitions entre les activités au cours de sa vie.

Il est nécessaire de lier les activités entre elles lorsqu’une activité doit démarrer une autre activité. Pour démarrer une activité, vous utilisez soit startActivity() ou startActivityForResult(). Vous devez passer une intention dans les deux cas.

Démarrage d’une activité sans résultat attendu

startActivity() est utilisé si l’activité nouvellement démarrée n’a pas besoin de renvoyer de résultat.

L’extrait de code suivant montre comment démarrer une autre activité à l’aide de cette méthode:

Vous pouvez également effectuer des actions telles que la transmission de données d’une activité à une autre. Dans ce cas, votre activité actuelle (l’activité appelante) souhaite transmettre des données à une activité cible. C’est là que les intentions sont utiles. Pour en savoir plus sur l’utilisation des intentions pour démarrer une activité, consultez mon article précédent.

Démarrer une activité avec un résultat

startActivityForResult() est utilisé pour démarrer une autre activité et s’attend à récupérer les données de l’activité nouvellement démarrée. En d’autres termes, utilisez ceci lorsque vous voulez obtenir un résultat de l’activité cible vers l’activité appelante, par exemple si l’activité cible collecte des informations utilisateur dans une boîte de dialogue modale.

Vous recevez le résultat de l’activité dans le onActivityResult(int requestCode, int resultCode, Intent data) méthode. Le résultat sera renvoyé en tant qu’intention.

Exemple de démarrage d’une activité

Voici un exemple pour montrer comment le démarrage d’une activité fonctionne.

Tout d’abord, vous créez votre MainActivity avec votre onCreate() méthode, un fichier de mise en page et un code de requête.

Dans votre onCreate() , vous allez créer une nouvelle instance d’intention pour démarrer votre deuxième activité.

Lorsque vous êtes prêt à démarrer cette activité, par exemple en réponse à un clic sur un bouton, vous appelez startActivityForResult(), qui transmettra l’intention nouvellement créée et le code de requête.

Pourtant, dans votre MainActivity, vous devez gérer les événements de résultat d’activité. Vous faites cela en implémentant le onActivityResult() méthode. C’est ainsi que vous recevrez le résultat de l’autre activité.

Voici à quoi cela devrait ressembler:

Maintenant, allez-y et créez votre SecondActivity. Cela devrait ressembler au code ci-dessous.

Mettre fin à une activité

Avant la fin d’une activité, les méthodes de cycle de vie correspondantes seront appelées.

En relation :  Les 7 meilleurs widgets météo pour Android

le onPause() devrait arrêter tous les écouteurs et les mises à jour de l’interface utilisateur. le onStop() La méthode doit enregistrer les données de l’application. Finalement, le onDestroy() libérera toutes les ressources allouées par l’activité.

Lorsque l’utilisateur revient à une application qui a été interrompue par le système, le onResume() méthode est appelée. Sur la base des données enregistrées, il peut réinscrire les écouteurs et déclencher des mises à jour de l’interface utilisateur.

État de l’instance d’activité

Une activité a besoin d’un moyen de conserver l’état précieux et les données utilisateur qu’elle a obtenues. Ces données peuvent être obtenues à partir de l’entrée utilisateur ou créées alors que l’activité n’était pas à l’écran.

Par exemple, un changement d’orientation de l’appareil peut entraîner la destruction et la recréation d’une activité. Dans un tel scénario, vous devez vous assurer de sauvegarder tout l’état d’activité avant qu’il ne soit détruit et de le recharger à nouveau lorsqu’il est recréé. Sinon, toutes les données dont dispose votre activité à ce moment-là peuvent être complètement perdues.

Pour enregistrer l’état d’activité, vous pouvez remplacer le onSaveInstanceState() méthode. Cette méthode est passée un Bundle objet comme paramètre. Un bundle peut contenir des chaînes, des types de données primitifs ou des objets. Dans cette méthode, ajoutez simplement toutes les données d’état importantes au bundle. Cet ensemble sera renvoyé à l’activité plus tard afin que vous puissiez restaurer l’état d’activité.

Pour extraire l’état enregistré du bundle et le restaurer, implémentez le onRestoreInstanceState() méthode. Ce rappel est appelé entre le onStart() et le onResume() méthodes de cycle de vie.

Nous examinerons plus en détail l’état de l’instance Activity dans un prochain article.

Conclusion

Après avoir suivi cet article, vous aurez une bonne compréhension du fonctionnement du cycle de vie d’une activité. Et vous avez appris qu’il existe deux façons de démarrer une activité, ainsi que d’obtenir des pointeurs sur la façon dont l’état de l’instance est géré dans le cycle de vie de l’activité.

Merci d’avoir lu, et pendant que vous êtes ici, consultez certains de nos autres articles sur le codage des applications Android.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.