Ich verstehe dieses Fragmentlebenszyklusgeschäft nicht ganz.Warum wird mein onCreate-Fragment ausgiebig aufgerufen, wenn ich die Anwendungen viewPager durchblättere?
Ich habe eine ziemlich Standard 3 Seiten horizontale Slider Ansicht Pager Layout für eine "Details anzeigen" -Abschnitt meiner App. Ich starte meine App auf der mittleren Seite der drei. Meine FragmentActivity setzt die Seite auf Seite 1.e
mPager.setCurrentItem(1); //default to center page, current data view fragment
Ich habe den FragmentStatePagerAdapter benutzen, weil mit Hilfe des FragmentPagerAdapter meine app manchmal abgestürzt, wenn der Artikel wieder aus einem aufgehängten Zustand zum Beispiel kommen, und dies der schnellste Weg war, Um das zu kümmern. Scheint zu funktionieren, aber ich vermute, dass der Staatsaspekt hier die Ursache meines Problems ist.
Also zuerst dachte ich, dass ich jedes Fragment die Arbeit machen würde, Daten von einem Restdienst zu bekommen und es dann in einer Liste zu zeigen, aber ich bin nicht so sicher mehr.
Ich habe versucht, eine eindeutige asynchrone Task auszuführen, um Daten in jedem der Fragmente von CreateView-Ereignissen abzurufen. Nachdem ich mehr über den Fragment-Lebenszyklus gelesen hatte, wechselte ich zu onCreate, nachdem ich festgestellt hatte, dass der onCreateView ziemlich stark aufgerufen wurde, was wiederum für eine gierige App sorgte, die zu oft Daten über die Leitung anforderte.
Die Umstellung auf onCreate hat nichts geändert. OnCreate wird immer noch genauso aufgerufen wie onCreateView für die 2 benachbarten Fragmente.
Die seltsame Sache ist, dass das Fragment, das ich als erstes in Fragment Activity eingestellt habe, nur das onCreate aufgerufen bekommt.
Etwas fühlt sich hier nicht richtig an.
Im Moment denke ich, dass ich die Elternfragmentaktivität deklarieren und alle Async-Aufgaben aufrufen sollte, um die Daten zu holen, die ich in den Fragmenten anzeigen muss. Legen Sie die Ergebnisse der asynchronen Aufrufe in einem Objekt fest, das der übergeordneten Fragmentaktivität gehört, und verwenden Sie dann die Fragmente, um das Listenobjekt usw. zu erstellen.
Aber was, wenn die asynchronen Tasks vom übergeordneten Objekt gestartet werden Aktivität nicht beenden, bevor jedes Fragment onCreateView genannt wird und das Objekt von der Mutter enthalten ist noch nicht fertig .....
unterzeichnet, verwirrte und frustriert
oh ya, das klingt hilfreich zu versuchen. Also, hey, scheint das Abfeuern asynchroner Aufgaben von einem Fragment onCreate wie eine Standardmethode zu sein? Jetzt feuere ich drei separate Async-Aufgaben ab, sobald meine Fragmentaktivität geladen ist, richtig oder falsch .... – topwik
Ja, das einzige Problem, das ich möglicherweise sehen könnte, ist, wenn ein Benutzer das Gerät dreht, wenn die AsyncTask ausgeführt wird. Ich habe jedoch nicht viel Erfahrung mit ihnen. Es könnte sich lohnen, die AsyncTaskLoader-Klasse zu testen. Ich glaube, dass die Loader-Klassen viele Dinge für Sie automatisieren. –
Ich habe auch in dieser Ausgabe gefangen. Jetzt muss ich arbeiten. Danke vielmals. – Durai