Autore Topic: onRestoreInstanceState non viene chiamata  (Letto 517 volte)

Offline giallo87

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    Windows 7
onRestoreInstanceState non viene chiamata
« il: 08 Novembre 2010, 16:23:56 CET »
0
In una activity c'è un bottone che mi carica una seconda activity con il metodo "startActivityForResult".
Quando viene caricata la seconda activity, viene chiamato il metodo "onSaveInstanceState" nel quale memorizzo tutte le variabili dinamiche che successivamente mi serviranno per ripristinare lo stato della prima activity.

Il problema è che, quando nella seconda activity ritorno un risultato, la prima activity parte eseguendo "onActivityResult", ma non esegue "onRestoreInstanceState".

Quindi non mi ritrovo le vecchie variabili. Com'è possibile che non carica questa benedetta funzione di restore???

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:onRestoreInstanceState non viene chiamata
« Risposta #1 il: 08 Novembre 2010, 16:27:48 CET »
+1
Cito dalla documentazione:
Citazione
Unlike onPause() and the other methods discussed earlier, onSaveInstanceState() and onRestoreInstanceState() are not lifecycle methods. They are not always called. For example, Android calls onSaveInstanceState() before the activity becomes vulnerable to being destroyed by the system, but does not bother calling it when the instance is actually being destroyed by a user action (such as pressing the BACK key). In that case, the user won't expect to return to the activity, so there's no reason to save its state.

Quindi non aspettarti che venga chiamata!