Как предотвратить воссоздание активности при выключении экрана?
Что я делаю
- Запустите Bejewels и идите на экран ювелирных изделий.
- Нажмите кнопку питания в ближайшее время. Экран выключен, но устройства нет.
- Нажмите кнопку питания еще раз.
Что я вижу
Тот же экран, что и перед выключением экрана.
В случае моего приложения (тривиального, просто веб-приложения с одним WebView) сценарий следующий:
Что я делаю
- Запустите мое приложение. Функция onCreate() загружает URL-адрес в WebView.
- Нажмите кнопку питания в ближайшее время. Экран выключен, но устройства нет.
- Нажмите кнопку питания еще раз.
Что я вижу
WebView перезагружает страницу.
Что я ожидал
Как и в случае с Bejewels, я хочу увидеть тот же самый экран, что для моего приложения это страница в ее предыдущем состоянии: скрипты запущены, поля формы - заполнены и т.д.
Отладка показала, что я был не прав (в предыдущем вопросе) и onDestroy() и onCreate() вызывается один за другим, когда экран только что включен. И поскольку я все еще слышу музыку, которую играет script, когда экран выключен, похоже, что активность и WebView существуют до тех пор, пока я снова не нажму кнопку питания.
Что я пробовал.
- android: alwaysRetainTaskState = "true" То же поведение.
- Чтение о намерениях (безрезультатно, я просто не понимал, как они применяются к моей ситуации).
- Использование PhoneGap. Он ведет себя по-другому: просто убивает все приложение нажатием кнопки питания. Это лучше, но не самое лучшее.