Situation Mon activité attend une opération asynchrone et après avoir reçu une réponse asynchrone, elle doit transmettre des informations à deux fragments à l'intérieur de celle-ci.
Besoin 1. Les deux fragments ont besoin de leurs appels onCreateView
pour pouvoir charger leur mise en page, 2. Ils ont besoin d’être eux-mêmes attachés à leur activité pour que getActivity()
fonctionne.
J'ai écrit une méthode setData()
dans les deux fragments et je cherche l'endroit "correct" dans le cycle de vie de l'activité pour les invoquer.
onCreate()
de l'activité ne fonctionne pas, onStart()
de l'activité ne fonctionne pas et onStart()
du fragment ne fonctionne pas.
Rien ne fonctionne, qu'est-ce qui me manque ici?
La documentation officielle pour le cycle de vie du fragment explique cela clairement - veuillez vous y référer, puis posez des questions de suivi en cas de doute.
Cette image sera utile pour comprendre les deux cycles de vie ensemble.
Comme beaucoup de gens se plaignent et il est un argument assez valable que ce cycle de vie est trop compliqué, dans Google I/O 2018, ils ont suggéré d'utiliser l'architecture Framework composant. Veuillez vérifier ceci Docs
lorsque vous êtes à Activity2---->backpress--->Fragment2(Activity1)
--- signifie que Activity1
est à nouveau attaché à partir de fragment2
so on OnAactivityCreated()
La méthode Activity1
est complètement chargée .... nous pouvons donc appeler la méthode setData()
de votre Activity1 ...