Значение переменной изменяется после вызова onSaveInstanceState - PullRequest
0 голосов
/ 05 апреля 2020

Насколько я знаю, onSaveInstanceState вызывается каждый раз, когда приложение переходит в фоновый режим. Если это так, то приложение может по-прежнему выполнять некоторый код в фоновом режиме. Поэтому мне интересно, что произойдет, если состояние переменной x будет сохранено во время onSaveInstanceState, приложение продолжит выполнение в фоновом режиме и изменит значение переменной x. Чуть позже процесс будет прерван, а действие будет воссоздано (когда пользователь вернется в приложение).

Итак, каково будет значение x? Кажется, что оно будет иметь старое значение (сохраненное во время onSaveInstanceState), но что будет с новым значением, будет ли оно потеряно?

1 Ответ

0 голосов
/ 05 апреля 2020

Прежде всего переменные, как вы их называете, не сохраняются автоматически, вам нужно поместить их в Bundle, аналогично тому, как вы добавляете Extras к Intent.

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

Также, пожалуйста, примите во внимание, что это Фоновое исполнение, как вы его назвали, это не так. Это просто минимальное выполнение кода, чтобы сохранить состояние вашей активности, а не фактическое фоновое выполнение

...