Сохранение состояния при закрытии приложения android на Chromeos - PullRequest
0 голосов
/ 07 апреля 2020

Наше android приложение сохраняет состояние до того, как оно будет уничтожено с помощью (Activity :: OnSaveInstanceState). Хорошо работает, если приложение вернулось к земле перед тем, как его убили. (что необходимо сделать перед явным закрытием приложения android). Однако в ChromeOS приложения android могут быть убиты без их повторного заземления.

Приложения имеют «x» в верхнем правом углу, что закрывает приложение без заземления.

android app running on chromeos showing close button

Если приложение завершено таким образом, OnSaveInstanceState не запускается (или, возможно, не работает) у него недостаточно времени, чтобы завершить sh?), поэтому состояние приложения не сохраняется.

В: Есть ли что-либо для:

  1. Отключить / скрыть это ' x 'для android приложения?
  2. Сохранить состояние, даже если приложение завершено таким образом.

Примечание: android приложения в chrome также имеют стрелку назад '(не показано на этом снимке экрана - вверху слева на панели инструментов), который закрывает приложение. Когда приложение закрыто таким образом, состояние сохраняется, как и ожидалось.

1 Ответ

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

Не сохранять состояние в Activity :: OnSaveInstanceState использовать взамен Activity :: OnPause.

После настройки отладки из Visual Studio для ChromeBook я подтвердил, что Activity::OnSaveInstanceState это не , вызываемый при нажатии на 'x' (как это происходит, когда один фон приложения android затем закрыть его

Однако Activity::OnPause и Activity::OnDestroy называются.

Несмотря на его название и вопреки много советов , кажется, что небезопасно сохранять состояние в Activity::OnSaveInstanceState

У меня перенесено сохранение состояния на Activity::OnPause.

...