#android
#Android
Вопрос:
у меня есть вопрос о двух разных объектах Bundle в приведенных ниже методах :
onSaveInstanceState(Bundle outState);
onCreate (Bundle savedInstanceState);
как система Android узнает, что объект bundle в методе onCreate — это объект, который программист использовал для сохранения своих состояний активности, а метод onCreate использует этот объект Bundle для получения состояния активности, которое отключено системой?
является ли объект Bundle одним из членов класса Activity и super.saveInstanceState(outState);
сохраняем Bundle в объекте Activity Bundle и при вызове activity метода onCreate(Bundle) этот элемент отправляем в метод onCreate?как я могу использовать Bundle в методе onCreate()?
пожалуйста, помогите мне…
Ответ №1:
Значения, которые вы сохраняете в пакете onSaveInstanceState
метода, будут отправлены вам обратно в onCreate
. В качестве примера того, как это работает.
- Вы получаете телефонный звонок.
- Ваша активность остановлена и вызывается onSaveInstanceState. Вы помещаете значение в этот пакет.
- Android завершает вашу активность и уничтожает этот экземпляр, потому что ОС требуется память.
- Пользователь возвращается к вашему приложению.
- Пакет создается заново из некоторого типа постоянного хранилища, которое Android поддерживает от вашего имени. Теперь ваш onCreate может использовать значение, которое вы поместили в пакет во время onSaveInstanceState
ПРИМЕР
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setContentView(R.layout.lldr_activity);
mFilterCheckbox = (CheckBox) findViewById(R.id.checkbox_id);
if(savedInstanceState != null) {
mFilterCheckbox.setChecked(savedInstanceState.getBoolean("FILTER_STATE", false));
}
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putParcelable("FILTER_STATE", mFilterCheckbox.isChecked());
}
Комментарии:
1. спасибо, можете ли вы показать мне пример, как я могу использовать этот пакет в методе onCreate?