два разных объекта Bundle?

#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 . В качестве примера того, как это работает.

  1. Вы получаете телефонный звонок.
  2. Ваша активность остановлена и вызывается onSaveInstanceState. Вы помещаете значение в этот пакет.
  3. Android завершает вашу активность и уничтожает этот экземпляр, потому что ОС требуется память.
  4. Пользователь возвращается к вашему приложению.
  5. Пакет создается заново из некоторого типа постоянного хранилища, которое 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?