Ho una classe Singleton Data, che utilizzo per memorizzare i dati. Sto accedendo in diversi Fragment
s.OnSaveInstanceState con Singleton
Quando viene caricato il primo Fragment
, non c'è alcun problema che tutti i campi nel Singleton siano null
. Quando viene mostrato il secondo Fragment
, dipende da questi campi per mostrare i suoi dati. Il primo Fragment
assicura che questi campi siano inizializzati.
Tuttavia, quando l'utente preme il tasto home nel secondo Fragment
, e si apre di nuovo dopo come un'ora o giù di lì, il Singleton ha perso tutti i suoi dati, e il Fragment
tenta di accedere null
campi.
Volevo implementare il metodo onSaveInstanceState
, ma sono perplesso su come funziona - non ho alcuna istanza dei dati a cui assegnarlo.
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("DATA", Data.getInstance());
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
savedInstanceState.getSerializable("DATA"); //What to do with this?
}
Qualsiasi aiuto è benvenuto.
Ma non sono sicuro di capire perché il singleton perderebbe tutti i suoi dati? L'applicazione è ancora in esecuzione in background, non è vero? Io uso lo stesso paradigma nella mia applicazione e non ho visto questa perdita di dati. – Aviral
Sto riscontrando questo problema, quindi credo che lo faccia. – nhaarman
Interessante! Se hai qualche idea su cosa causa la scomparsa dei dati nel singleton, per favore pubblica. Questo mi sta preoccupando. Grazie. – Aviral