2011-12-22 2 views
0

Мне было интересно: параметр «output» отправляется в суперкласс, но мы добавляем к нему «putSerializable» сразу: не имеет значения, что мы «модифицируем» его сразу после вызова суперкласс? как приложение будет знать, что мы добавили этот serializable, если проект обновлен? (Почему бы нам не поставить сериализуемым первый, а затем мы называем суперкласса?)Добавить putSerializable to onSaveInstanceState

@Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putSerializable(NotesDbAdapter.KEY_ROWID, mRowId); 
    } 

и наш OnCreate метод:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ... 
     mRowId = (savedInstanceState == null) ? null : (Long) savedInstanceState.getSerializable(NotesDbAdapter.KEY_ROWID); 

Благодаря

ответ

1

Вы можете сделать что-либо.

OutState передается супер по ссылке, поэтому любые изменения впоследствии по-прежнему влияют на объект.

Это лучше всего объясняется здесь:

http://www.yoda.arachsys.com/java/passing.html

+0

хмм хорошо, имеет смысл, спасибо за быстрый ответ Бланделл! – Paul

Смежные вопросы