Сохранение состояния при закрытии приложения Android на Chromeos

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

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

Android-приложение, работающее на chromeos, показывает кнопку закрытия

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

В: Есть ли возможность:

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

Примечание: приложения для Android в Chrome также имеют «стрелку назад» (не показана на этом снимке экрана — вверху слева на панели инструментов), которая закрывает приложение. Состояние сохраняется, как и ожидалось, когда приложение закрывается таким образом.


person Tom    schedule 07.04.2020    source источник
comment
Какое состояние вы тут спасаете?   -  person Cheesebaron    schedule 07.04.2020
comment
макет окна приложения, а также модификации проекта, если он еще не был сохранен. Описание макета окна сохраняется в формате xml, а данные проекта — в пользовательском (текстовом) формате.   -  person Tom    schedule 07.04.2020


Ответы (1)


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

После настройки отладки из Visual Studio для ChromeBook я подтвердил, что Activity::OnSaveInstanceState не вызывается , при нажатии на «x» (например, когда вы запускаете приложение Android в фоновом режиме, а затем явно закрываете его

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

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

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

person Tom    schedule 20.04.2020