2012-04-26 14 views
33

Co jest bardziej poprawne? To:Zadzwoń do super.onSaveInstanceState (bundle) na początku lub na końcu?

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

lub to:

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

Obaj praca dla mnie na moim urządzeniu Gingerbread oraz Froyo i lody emulatorów Sandwich, i widziałem, jak o wielu przykładów mówiąc jeden sposób, jak inny. Czy to ma znaczenie?

Odpowiedz

36

Dopóki klucze nie kolidują (np. ID jest tym samym, co Android używa wewnętrznie), są identyczne.

+0

Po debugowaniu kodu Android mogę to potwierdzić. Wygląda na to, że Android nie próbuje zapisać 'Bundle outState', dopóki nie zostanie wywołana twoja metoda' onSaveInstanceState() '. Dlatego nie ma znaczenia, gdzie w swojej metodzie nazywacie 'super.onSaveInstanceState (outState)', o ile klucze się nie kolidują. Możesz nawet nazwać to w środku swojej metody, jeśli chcesz! – snark

Powiązane problemy