Arbeiten mit onPause, onRestart, in Tab Widget - Android
-
29-09-2019 - |
Frage
ich eine ListView
haben, die in einem TabWidget
ist. Wenn ich ein Element auf dem ListView
auswählen und auf das Kind ListView
gehen, verschwindet die TabWidget
. Das ist in Ordnung, mit der Ausnahme, dass es ruft die onPause
Methode und damit bewirkt, dass onRestart
aufgerufen wird, wenn ich an der Mutter ListView
zurück.
Ich habe onRestart
Setup aktualisierte Daten vom Server abzurufen, aber ich will das nicht bei jedem Besuch der Benutzer kehrt zum Mutter ListView
auftreten. Ich möchte nur onRestart
aufgerufen werden, wenn die Anwendung von im Hintergrund läuft lebendig. Ich habe versucht, eine Boolesche Variable Implementierung, um zu bestimmen, ob ich den Code ausführen soll, die innerhalb onRestart
ist, aber es scheint nicht, ein Weg, um die Auswirkungen dieses zu erhalten, um.
Ideen?
Lösung
Sie können Ihr Kind Aktivität mit startActivityForResult
abfeuern und eine Fahne in onActivityResult
nicht reload gesetzt (die aufgerufen werden soll, wenn der Benutzer den Rücken in die Listenansicht aus der Detailseite). Sie würden eine Membervariable haben (sagen wir mal mReload
), dass Sie true
in onCreate
und onRestart
gesetzt hatte, und zu false
in onActivityResult
, verarbeiten dann den Reload onResume
wenn mReload
wahr ist (und legen Sie es so ein normaler Lebenslauf false
zurück wird nicht die reload auslösen).
Alternative: set nur einen Flag (mLeftPage
) in Ihrer Tätigkeit auf der Klick Zuhörer Reihe. Beim Neustart wenn mLeftPage
wahr ist, nicht neu zu laden nicht die Liste und Satz mLeftPage
zurück auf false gesetzt. Andernfalls reload.