web-dev-qa-db-fra.com

cycle de vie des fragments: quand "ondestroy" et "ondestroyview" ne sont pas appelés?

Imaginez ce scénario: j'ai un Fragment dans un Pager. J'essaie de passer à d'autres applications, afin que le Activity propriétaire de mon pager (et mon fragment) soit arrêté et temporairement détruit, finalement.

Ainsi, lorsque je reviens à mon activité, les rappels de FragmentonCreate, oncreateview et ainsi de suite sont appelés. Mais aucun des rappels onDestroy du Fragment n'a été appelé auparavant! Il semble qu'après "onStop" le fragment soit détruit immédiatement. Est-ce un comportement normal? Est-ce peut-être parce que le Activity est détruit sans appel à son onDestroy?

31
Bertuz

Jetez un œil à cette question: Pourquoi implémenter onDestroy () s'il n'est pas garanti d'être appelé?

Fondamentalement, onDestroy () ne peut être garanti que si vous appelez finish (). Sinon, onDestroy () ne peut pas être appelé tant que le système ne le juge pas nécessaire. Vous voudrez peut-être envisager de placer votre logique de "fermeture" dans onPause () ou onStop () à la place.

39
invertigo