Вопрос по android – Вызовите super.onSaveInstanceState (bundle) первым или последним?

37

Что является более правильным? Это:

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

или это:

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

Они оба работают для меня на моем устройстве Gingerbread и на эмуляторах Froyo и Ice Cream Sandwich, и я видел примерно столько же примеров, говорящих о том и другом. Это имеет значение?

Ваш Ответ

1   ответ
42

ID то же самое, что и то, что Android использует внутри), они идентичны.

После отладки через код Android я могу это подтвердить. Похоже, Android не пытается сохранитьBundle outState до того какпосл вашonSaveInstanceState() метод был вызван. Поэтому не имеет значения, где в вашем методе вы называетеsuper.onSaveInstanceState(outState), пока ключи не сталкиваются. Вы могли бы даже назвать это в середине вашего метода, если хотите! snark

Похожие вопросы