Moin.
Aktuell verwenden wir für eine App Services, die sich um Persistierung/Caching von vom Server geladenen Daten kümmern, neue Daten nachladen und diese dann wieder im Cache ablegen. Der Hintergedanke ist klar der, dass wir damit immer die letzten verfügbaren Daten abholen können, auch wenn keinerlei Netzzugriff besteht. Damit haben wir allerdings jetzt eine Unschönheit.
Im onCreateView haben wir über diesen Weg keinerlei Daten mit denen wir die Views/Controls belegen könnten. Das heißt wir starten beim onResume einen Intent, der den Service antriggert, damit dieser per Intent die Cache-Daten zurückliefert. Genauso werfen die Services auch Events sobald neue Daten vom Server geladen wurden. Im Fall von verfügbarem Internet heißt das, dass wir nach dem Resume zumeist zwei Datensätze bekommen. Erst den alten, dann den neuen. Dass das zu Rucklern bei Einblende-Animationen führt, dürfte klar sein. Zudem eben auch nicht alle Controls von vornherein im richtigen Status in onCreateView belegt werden können, weil die Daten fehlen.
Was uns jetzt irgendwie fehlt, ist ein Weg die Services synchron im onCreateView nach Cache-Daten zu fragen. Dazu möchte ich ungern die Persistierungsschicht statisch aus den Services herauslösen. Vielleicht geht es ja sinnvoll auch komplett anders.
Was sind Eure best practices zu dem Thema?