onSavedInstanceState не работает при возврате к активности

Используется намерение от нажатия кнопки, чтобы перейти к другой деятельности, а затем позже вернуться к исходной деятельности.

я пытался сохранить два целых числа при выходе из действия для другого действия, затем позже, когда я возвращаюсь к исходному действию, я получаю нулевое значение для пакета.

Кто-нибудь знает, почему это не работает?

я использовал набор saveInstanceState для сохранения переменных при повороте экрана, и он работает в этой ситуации, однако, когда я ухожу, чтобы просмотреть другое действие, а затем возвращаюсь к этому действию, набор не был сохранен. получить ноль по возвращении.

метод onSavedInstanceState

  @Override
public void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);

outState.putInt("index", index);
outState.putInt("top", top);

} // end onSavedInstanceState

первая часть метода onCreate, содержащая код для получения сохраненных переменных saveInstatnceState

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_inspectioninfoselectionlist);

    if(savedInstanceState!=null){
        index = savedInstanceState.getInt("index");
        top = savedInstanceState.getInt("top");
        Log.i("$$$$$$$", "value of index and top returned after activity starts" + index +  " " + top);
    }else if (savedInstanceState == null){
        Log.i("$$$$$$$", "saved instance state is null" + index +  " " + top);
    }

1 ответ

Решение

onSaveInstanceState() вызывается при изменении конфигурации, такой как ориентация экрана, изменение языка и т. д.
Открытие другого действия не является изменением конфигурации, поэтому метод не вызывается.

Другие вопросы по тегам