C'è un motivo particolare per cui "onSaveInstanceState" non viene chiamato quando si preme il "pulsante Indietro"? Ha senso per me che lo stato di visualizzazione DOVREBBE essere salvato quando premo il pulsante Indietro. C'è un particolare caso d'uso che gli sviluppatori di Android avevano in mente che significa in realtà che è meglio che lo stato di visualizzazione NON venga salvato quando si preme indietro?Motivo per cui "onSaveInstanceState" non viene chiamato quando si preme "back button"?
5
A
risposta
2
Durante l'esecuzione della parte posteriore l'attività e i frammenti verranno distrutti. Perché l'istanza deve essere salvata quando non si desidera creare di nuovo l'attività (ad esempio cambiamento dell'orientamento).
Se si desidera salvare alcuni dati o, meglio, riportarli all'attività/al frammento di chiamata, è necessario utilizzare il meccanismo onActivityResult. Per questo è necessario avviare l'attività con il metodo "start for result" e impostare il risultato in un intento quando il pulsante back è stato premuto.
Problemi correlati
- 1. Android Visualizza onSaveInstanceState non chiamato
- 2. onStop() non viene chiamato quando preme il pulsante Indietro
- 3. MPMoviePlayerPlaybackDidFinishNotification viene chiamato quando non
- 4. L'attività di ricerca non viene avviata quando si preme invio
- 5. Il frammento di onSaveInstanceState() non viene mai chiamato
- 6. Prevent back button
- 7. OnBackPressed non viene chiamato?
- 8. Modulo non inviato quando si preme invio
- 9. Il metodo onSaveInstanceState (Bundle) viene chiamato dopo onPause()?
- 10. Frammento non chiama onSaveInstanceState quando si scorre ViewPager?
- 11. Quando viene chiamato CanExecute?
- 12. Alla fine() viene chiamato quando si preme il pulsante stop in eclissi?
- 13. Quando viene chiamato didRegisterForRemoteNotificationsWithDeviceToken?
- 14. ViewDidAppear non viene chiamato quando si apre l'app dallo sfondo
- 15. History API e History.js Back Button issue
- 16. IBAction non viene chiamato
- 17. Quando viene chiamato DbConnection.StateChange?
- 18. Quando viene chiamato viewDidLoad?
- 19. Perché non viene chiamato onBackPressed()?
- 20. NotSerializableException quando si preme il tasto home
- 21. hiding back button in ionic, angularjs
- 22. App iOS IOS 8 si blocca quando viene chiamato UIActivityViewController
- 23. Il motivo per cui MonadState viene messo e messo?
- 24. ViewPager non si aggiorna sempre quando viene chiamato setAdapter, FragmentStatePagerAdapter
- 25. ResponseEntityExceptionHandler non viene chiamato quando si verifica un'eccezione
- 26. Il metodo onPreferenceChange non viene chiamato quando si modifica Listpreferences
- 27. View.onDraw() --- quando viene chiamato?
- 28. Quando viene chiamato __repr __()?
- 29. etichetta nascosta quando si preme un pulsante
- 30. C'è un motivo per cui jQuery.each non si basa su Array.forEach quando è disponibile?
E se si desidera memorizzare in modo persistente i dati durante la navigazione, è necessario utilizzare onResume() o onPause(). – EpicPandaForce
Per quanto ne so, esistono 3 livelli di persistenza dei dati: savedInstanceState, SharedPreferences e dati SQL. Se ce ne sono, penso che i dati che voglio salvare si adattino meglio a SharedPreferences, perché è essenzialmente quello che è: le preferenze. Ma allora, perché non mettere tutto viewState in SharedPreferences? Qual è l'uso di savedInstanceState a tutti? – user3302602