android: utilisation des onStart(), onStop()?
J'ai lu plusieurs posts que décrire la différence entre onStart()
et onResume()
: onStart()
est appelée lorsque l'activité devient visible, onResume()
est appelée lorsque l'activité est prêt pour l'interaction de l'utilisateur. des beaux.
J'ai toujours juste ajouté du code pour onPause()
et onResume()
, et jamais pris la peine avec onStart()
et onStop()
.
Quelqu'un peut-il donner des exemples concrets de ce que vous pourriez faire dans onStart()
, vs onResume()
? En va de même pour onStop()
et onPause()
, comment est onStop()
utile? Je dois être en manque de quelque chose de fondamental ici.
Vous devez vous connecter pour publier un commentaire.
onStop()
(par exemple) être appelé lorsque vous quittez l'activité pour une autre activité (edit: presque. voir commonswares commentaire à propos de dialogue sur le thème des activités).Par exemple, si vous utilisez
startActivity()
de l'activité A pour démarrer l'activité B. Lorsque vous appuyez sur l'arrière de l'activité B vous sera de retour à l'activité etonStart
sera appelée.Ce qui diffère de certaines des raisons
onPause
peut être appelé sansonStop
d'être appelé. Par exemple, si l'écran est éteint ou que vous appuyez sur le bouton de veille (standby)onPause
sera appelé, mais probablement pasonStop
(en fonction de la mémoire disponible et la chose), c'est donc un "plus légère pause". onStop sera probablement d'être appelé finalement, même dans ce cas, mais pas immédiatement.Ok, mais à quoi
Souvent il n'y a pas d'utilisation spécifique, mais il peut y avoir. Depuis vos activités à maintenir son état de la mémoire sur la pile, même après le démarrage d'une autre activité, la pile augmente avec le nombre d'activités a commencé (la hauteur de la pile).
Cela peut conduire à la grande utilisation de la mémoire dans certaines applications. Après un certain temps, le cadre de coup de pied dans et de tuer certaines activités sur la pile, mais c'est plutôt émoussé et signifie probablement un grand nombre d'etats à être conservé lors du retour.
Donc un exemple d'utilisation pour
onStart/onStop
est, si vous voulez libérer de l'état au moment de quitter une activité pour un autre et de le recréer lorsque vous êtes de retour.Je l'ai utilisé pour définir listadapters null, image vide les caches et similaires (dans des applications très spécifiques). Si vous souhaitez libérer de la mémoire utilisée par les vues visibles dans un listadapter vous pouvez le recréer dans onstart et de laisser les points de vue d'être récupéré par le gc. Cela permettra d'accroître la probabilité que le reste de la mémoire de l'état de l'activité sera en direct sur.
Certaines ressources peut être considérée comme assez bonne pour se sauver, tandis que l'activité de l'instance est en vie, et quand il est sur le devant de la pile. C'est à vous de décider ce qui est le mieux à votre application et de la granularité de la création/démarrage/reprise vous donne.
onStop()
n'est pas appelé.onStart() fonctionne après onCreate() à la fin de sa tâche.
C'est un bon endroit pour mettre un broadcastReceiver ou de l'initialisation de l'état à propos de l'INTERFACE utilisateur qui doit afficher de façon constante chaque fois que l'utilisateur revient à cette activité.
onResume() fonctionne lorsque vous revenez à votre Intention ou à l'Activité en appuyant sur le bouton de retour. Donc, onPause sera appelée à chaque fois qu'une autre activité vient à l'avant-plan.
je pense que votre question est assez expliqué ici sur la doc : lire à propos de l' L'Activité Du Cycle De Vie
onStart()
fonctionne aprèsonCreate()
terminé sa tâche.onResume()
fonctionne lorsque vous revenez à votreIntent
ouActivity
en appuyant sur le bouton retour.Called when the activity is becoming visible to the user. Followed by onResume() if the activity comes to the foreground, or onStop() if it becomes hidden.
. Consultez le lien ci-dessus.