[JAVA] À propos des composants de l'application Android

Aperçu

Récemment, j'ai décidé de développer une application Android lors d'un stage, et j'ai eu du mal à comprendre les composants, je vais donc écrire ce que j'ai appris au lieu d'un mémo. C'est assez rudimentaire et peut ne pas être très utile: satisfait:

Livres utilisés pour l'étude

Introduction au développement d'applications Android que vous pouvez apprendre des bases

Vue d'ensemble et rôle de chaque composant

Activité
C'est un composant pour afficher l'écran de l'application, et il existe un mécanisme pour sauvegarder / restaurer l'état et appeler d'autres composants. Le mécanisme qui transmet des informations au système sous forme de message lors de l'appel d'autres activités est appelé intent .
fragment
Une représentation de l'interface utilisateur de l'activité et d'une partie d'hier. C'est pratique car vous pouvez modifier la méthode d'affichage en fonction de la taille de l'écran et vous pouvez rendre l'interface utilisateur et la logique unifiées indépendantes de l'activité.
Service
Un composant qui s'exécute en arrière-plan et ne fournit pas d'interface utilisateur. Comme il peut être exploité séparément du traitement principal, il est pratique lorsque vous souhaitez effectuer le traitement d'une manière qui n'interfère pas avec le comportement de l'utilisateur, ou lorsque vous souhaitez continuer le traitement sans être affecté par le mode de vie de l'activité. Cependant, comme il s'exécute essentiellement sur le thread principal du même processus que l'application, lors de son implémentation, évitez d'écrire le processus qui utilise trop le CPU tel quel, et exécutez-le après avoir configuré un thread sur le site de service < / jj>
Fournisseur de contenu
Un composant qui permet d'accéder aux données gérées par l'application. Il fournit une interface qui permet d'acquérir et de manipuler des données quel que soit le format des données gérées. Le SDK Android est livré avec plusieurs fournisseurs de contenu depuis le début, vous pouvez donc facilement obtenir et mettre à jour des photos, des informations de calendrier, des informations de contact, etc. prises avec l'appareil photo.
Récepteur de diffusion
Reçoit l'intention de diffusion et la traite. Les intentions peuvent être diffusées à partir d'applications individuelles, mais elles peuvent également être émises par le système (lorsque l'appareil est connecté à un chargeur, lorsque la date change, etc.). Par défaut, le récepteur de diffusion affiche une boîte de dialogue demandant à l'utilisateur de forcer l'arrêt du processus si le processus n'est pas terminé dans les 10 secondes. Par conséquent, il n'est utilisé que pour le processus d'appel du service qui met à jour les données et le processus lui-même. Doit être fait du côté du service d'appel.

Cycle de vie des composants

Activité
La méthode de rappel est appelée chaque fois que l'état change. Le développeur effectue le traitement correspondant à chaque état dans cette méthode de rappel.
Fragment
Fondamentalement, le traitement selon la méthode de rappel est décrit comme l'activité, mais comme le fragment est un composant placé dans l'activité, l'influence du mode de vie de l'activité Recevoir. Si une activité est détruite, les fragments placés sur cette activité sont également détruits.
Service
Il prend des formes différentes selon les deux méthodes de démarrage, l'état "démarré" par startService () et l'état "lié" par bindService (). Dans le premier cas, le système ne s'arrêtera pas à moins qu'il ne soit arrêté ou explicitement arrêté en raison d'un manque de mémoire, il est donc nécessaire de le terminer explicitement lorsqu'il n'est plus nécessaire pour éviter une occupation inutile de la mémoire. Dans ce dernier cas, le composant et le service exécutés sont une sorte de relation client-serveur, donc si l'appelant se dissocie, le service s'arrêtera. Dans ce cas, plusieurs composants peuvent être liés au même service.
Fournisseur de contenu
Généré au démarrage de l'application et ne sera pas détruit tant que le processus se poursuit. Il n'est fondamentalement pas nécessaire de connaître le cycle de vie du fournisseur de contenu.
Récepteur de diffusion
OnReceive () Seulement survit. Lorsque onReceive () se termine, il est considéré comme un objet inutile et sera bientôt détruit. Cependant, si vous lisez la méthode goAsync (), elle peut être exécutée jusqu'à ce que vous appeliez la méthode finish () de la classe PendingResult, qui est la valeur de retour.
(Référence) Cycle de vie de l'activité ![activity_lifecycle_pic](https://qiita-image-store.s3.amazonaws.com/0/124827/a181161c-9628-b89e-e644-9af1b4c9e3f7.jpeg) #### Visualisation du cycle de vie Chaque composant a son propre cycle de vie, et le traitement qui peut être effectué à chaque étape du cycle de vie change, ce qui entraîne la complexité des applications pour smartphone. Les classes qui sont responsables des processus sensibles au cycle de vie tels que l'affichage et les entrées utilisateur doivent être conçues pour être aussi simples que possible. Et les processus tels que la logique métier et la persistance des données doivent être conçus de manière à ne pas être affectés par le mode de vie de l'activité.

finalement

Ce qui précède est un bref résumé des composants. J'étudie actuellement à l'aide d'une calculatrice et d'un bloc-notes, donc si j'en ai envie, j'aimerais écrire quelque chose sur la mise en œuvre au lieu d'une note. : kissing_closed_eyes: chu ☆

Ishikawa a encore froid: masque:

Recommended Posts