2011-01-18 14 views
6

Ho appena letto su come mantenere lo stato della mia app per Android e sono incappato in onRetainNonConfigurationInstance. Ma durante la lettura del documentation ho notato questa frase:Devo implementare onRetainNonConfigurationInstance?

Questa funzione è chiamata a puro titolo di ottimizzazione, e non si deve fare affidamento su di esso chiamato.

Quindi mi chiedo: quando ha davvero senso usare questo metodo. Se non posso contare sulla chiamata, ho bisogno di un altro meccanismo per trasferire lo stato comunque (che nel mio caso sarebbe una serializzazione). Quindi, a meno che io non abbia riscontrato alcun risultato, c'è qualche motivo per cui dovrei optare per onRetainNonConfigurationInstance?

Se sarebbe garantito essere chiamato, mi piacerebbe usarlo, ma se non lo è, sembra abbastanza inutile.

Mi manca qualcosa? Quando usi questo metodo? Come manterresti una connessione di rete o cose del genere?

Grazie!

risposta

12

La documentazione indica che ci sono casi in cui l'attività non verrà ricreata immediatamente, nel qual caso onRetainNonConfigurationInstance() non verrà chiamato. Non è possibile utilizzare questo metodo per mantenere i dati. Viene utilizzato solo per trasferire oggetti che sono costosi da creare durante una modifica della configurazione.

+0

ahh, suona bene! Quindi posso usarlo per i cambiamenti di orientamento e fare affidamento sulla chiamata in questo caso, giusto? – Philipp

+1

Questo è in ritardo, ma a chiunque desideri conoscere ulteriori dettagli a riguardo, ti suggerisco di leggere la risposta di CommonsWare qui: http://stackoverflow.com/questions/4285877/which-one-to-use-onsaveinstancestate-vs-onretainnonconfigurationinstance –

Problemi correlati