web-dev-qa-db-fra.com

Vue Android - onAttachedToWindow et onDetachedFromWindow - quand sont-ils appelés dans le cycle de vie de l'activité?

Je crois que onAttachedToWindow est appelé lorsque la fonction setContentView(R.layout.myLayout.xml) de onCreate est appelée. Je peux donc supposer que, dans le cycle de vie de l'activité, onDetachedFromWindow est appelée lorsque l'activité est détruite. Ma question est la suivante: comment lier ces deux crochets de rappel au cycle de vie des activités? 

puis-je dire que onAttachedToWindow est lié à onCreate et onDetachedFromWindow est lié à onDestroy? 

8
j2emanue

Techniquement parlant, onAttachedToWindow est appelé après onResume (et cela ne se produit qu'une seule fois) cycle_appel .ActivityThread.handleResumeActivity ajoutera DecorView à la WindowManger courante qui appellera à son tour WindowManagerGlobal.addView() qui traversera toutes les vues et appellera onAttachedToWindow.

onDetachedFromWindow est à égalité avec onDestroy

9
WenChao

Je trouve qu'il est possible que onAttachedToWindow soit appelé quand setContentView est appelé.

Lorsque vous utilisez un écran partagé sur Android N et que vous définissez la valeur configChanges de l'activité dans AndroidManifest.xml:

 "keyboardHidden|orientation|screenSize"

onAttachedToWindow sera appelé dans setContentView, car la variable "mAttachInfo" dans le décorview de window n'est pas nulle lorsque vous appelez setContentView pour ajouter rootView à decorView, dispatchAttachedToWindow est appelé dans addViewInner()

Enfin, après l'activité onResume(), onAttachedToWindow() n'est plus appelé.

2
Joe Chan