webentwicklung-frage-antwort-db.com.de

Fragmentieren Sie den Lebenszyklus in Bezug auf seine Aktivität

Situation Meine Aktivität wartet auf eine asynchrone Operation und nachdem sie von der asynchronen Operation erfahren hat, muss sie Informationen an 2 Fragmente in ihr übergeben. 

Anforderung 1. Beide Fragmente benötigen ihre onCreateView-Aufrufe, damit sie ihre Layouts laden können. 2. Sie müssen für sich selbst an ihre Aktivität gebunden sein, damit getActivity() funktioniert.

Ich habe eine setData()-Methode in beiden Fragmenten geschrieben und suche nach dem "richtigen" Ort im Lebenszyklus der Aktivität, um sie aufzurufen.

onCreate() der Aktivität funktioniert nicht, onStart() der Aktivität funktioniert nicht und onStart() des Fragments funktioniert nicht. 

Nichts geht, was fehlt mir hier?

23

Die offizielle Dokumentation für den Fragment-Lebenszyklus erklärt dies klar - bitte verweisen Sie darauf und stellen Sie bei Unklarheiten Anschlussfragen. 

15
Vineet Shukla

Dieses Bild wird hilfreich sein, um beide Lebenszyklen zusammen zu verstehen.

Da sich viele Menschen beschweren und es ein gewisses Argument ist, dass dieser Lebenszyklus zu kompliziert ist, haben sie in Google I/O 2018 die Verwendung des Architekturkomponenten-Frameworks vorgeschlagen. Bitte überprüfen Sie diese Dokumente

 enter image description here

8
TapanHP

onAttachFragment () - activity wird vor onCreate () - activity und nach onAttach () - fragment aufgerufen

0
David A

wenn Sie sich bei Activity2---->backpress--->Fragment2(Activity1) befinden, bedeutet dies, dass Activity1 erneut von fragment2 angehängt wird. OnAactivityCreated() - Methode Activity1 wird vollständig geladen .... damit wir die setData() Methode Ihrer Activity1 aufrufen können ...

0
user2239249