2012-04-26 9 views
33

Quale è più corretto? Questo:Chiama il super.onSaveInstanceState (pacchetto) primo o ultimo?

@Override protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putLong(ID, mId); 
} 

o questo:

@Override protected void onSaveInstanceState(Bundle outState) { 
    outState.putLong(ID, mId); 
    super.onSaveInstanceState(outState); 
} 

Entrambi lavorano per me sul mio dispositivo Gingerbread e gli emulatori Sandwich Froyo e gelato, e ho visto circa altrettanti esempi che dicono in un modo come l'altro. Importa?

risposta

36

Fintanto che le chiavi non entrano in collisione (ad esempio, ID è uguale a qualcosa che Android utilizza internamente), le due sono identiche.

+0

Dopo il debug tramite il codice Android posso confermarlo. Sembra che Android non tenti di salvare 'Bundle outState' finché _after_ il metodo' onSaveInstanceState() 'è stato chiamato. Quindi non importa dove nel tuo metodo tu chiami 'super.onSaveInstanceState (outState)', a patto che le chiavi non entrino in collisione. Potresti anche chiamarlo nel mezzo del tuo metodo, se lo volessi! – snark

Problemi correlati