правильно описать OnSaveInstanceState (Java, Android)

86
10 марта 2022, 20:30

Использую в приложении два TextView, кнопку Button и Exoplayer. Подскажите как правильно сделать сохранение состояния приложения при нажатии кнопки "Назад" (Back). Суть в следующем: пользователь загружает приложение, нажимает кнопку Play - играет плейер, в текстовые поля загружается информация по restapi запросу, в общем красота. Как только нажимаю кнопку "Назад" (Back) в фоне остается играть плейер (это в принципе неплохо, логика нормальная), а при возврате текстовые поля очищаются и становятся пустыми. Логику OnPause-OnStop-OnDestroy посмотрел, жизненный цикл понятен, по восстановлению OnStart-OnResume - тоже. Описал процесс таким образом, но что-то пошло не так... Как быть?

public void onSaveInstanceState(Bundle outState){
    outState.putString("ARTIST_NAME",textView.toString());
    outState.putString("TRACK_NAME", trackView.toString());
    outState.putBoolean("DETECT", isEnabled);
    super.onSaveInstanceState(outState);
}
public void onRestoreInstanceState(Bundle savedInstanceState){
    textView.setText(savedInstanceState.getString("ARTIST_NAME"));
    trackView.setText(savedInstanceState.getString("TRACK_NAME"));
    isEnabled = savedInstanceState.getBoolean("DETECT");
    }
Answer 1

Да, действительно ссылка сработала. Описал логическую переменную через "Запись" перед уничтожением:

@Override
    protected void onPause() {
        super.onPause();
        SharedPreferences.Editor editor = psettings.edit();
        editor.putBoolean(APP_PLAYER_ENABLED,isEnabled);
        editor.apply();
    }

После достаю ее следующим образом:

 @Override
    protected void onResume() {
        super.onResume();
        psettings = getSharedPreferences(APP_PREFERENCES,Context.MODE_PRIVATE);
        boolean hasVisited = psettings.getBoolean(APP_PLAYER_ENABLED, false);
        if (!hasVisited){
         ......//здесь пишу свой код на выполнение
        }
    }
READ ALSO
помогите выдает ошибку Undefined offset: 2

помогите выдает ошибку Undefined offset: 2

у меня проверяется значение двух разных массивов и если они совпадают то они удаляются

193
Работа с двумя базами в Laravel

Работа с двумя базами в Laravel

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

91
Коды стран alpha2 и ISO в Symfony 4

Коды стран alpha2 и ISO в Symfony 4

Нужно сопоставление двухбуквенного кода страны и цифрового, нашел класс Symfony\Component\Intl\Countries но там только двухбуквенный, есть ли в symfony 4 такое?...

212
Ассоциативный массив php7

Ассоциативный массив php7

Есть вложенный массив и в каждой части этого массива есть значение "speed"Нужно добавить сразу всем елементам с этим значением + 20

102