stato alla ricerca di questo problema per un po 'inutilmente ora:Come determinare frammento restaurato backstack
Come determinare frammento è in fase di restauro da backstack? Sto usando la libreria di compatibilità e un ListFragment all'interno di FragmentActivity. Quando viene selezionato un elemento all'interno di ListFragment, viene avviato un nuovo frammento per sostituire ListFragment.
Ho notato che quando FragmentActivity viene messa in pausa, viene chiamato onSaveInstanceState di Fragment. Ma quando Framment viene inserito nello stack posteriore tramite FragmentTransaction, onSaveInstanceState non viene richiamato, i metodi del ciclo di vita onCreateView e onActivityCreated vengono richiamati con il bundle salvatoInstanceState.
Chiedo questo perché voglio caricare alcuni dati quando il frammento viene creato o ripristinato, ma non così quando l'utente torna via. backstack.
Ho dato un'occhiata a How to check if Fragment was restored from a backstack? ma voglio aggiungere ulteriori dettagli nella speranza che questo possa stimolare una risposta.
Edit: appena notato http://developer.android.com/reference/android/app/Fragment.html#onSaveInstanceState(android.os.Bundle) dice
Nota però: questo metodo può essere chiamato in qualsiasi momento prima OnDestroy(). Ci sono molte situazioni in cui un frammento può essere in gran parte abbattuto (come quando è collocato sullo stack posteriore senza mostrare un'interfaccia utente), ma il suo stato non verrà salvato finché l'attività proprietaria non avrà effettivamente bisogno di salvare il suo stato.
Così onSaveInstanceState è sicuramente fuori questione ...
Come un piccolo aggiornamento a questa domanda, sto sospettare sempre di più è a causa di capricci della biblioteca compatibilità. Non ho ancora provato a eseguire un test case su dispositivi 3.0+ ancora, controllerò quando lo farò. – dvd
perché non si effettua la chiamata al server per caricare i dati in 'onCreate()'. Forse, questo allevierà i tuoi problemi. Credo che questo particolare metodo non venga chiamato quando un frammento viene ripristinato dallo stack posteriore. – Abhijit