Активность отзывает onCreate () при блокировке телефона или зависании

#android

#Android

Вопрос:

Я блокирую (отключаю) телефон вручную, когда выполняется моя активность. Когда я разблокирую свой телефон, OnCreate() вызывается еще раз. Я запускаю диалоговое окно и запускаю веб-сервис в onCreate (). Итак, когда телефон разблокирован, появляется другое диалоговое окно, вызывается другой веб-сервис.

Наконец, что мне нужно, так это прекратить вызывать onCreate (), когда телефон разблокирован. Есть ли какой-нибудь способ?

Ответ №1:

Нет 🙂

Вы не можете остановить onCreate() вызов. Однако вы можете установить некоторый флаг в onSaveInstanceState() , который вызывается перед приостановкой приложения. Затем в onCreate() , чтобы прочитать, установлен ли флаг, и узнать, было ли действие не создано, а воссоздано из-за блокировки экрана, работы приложения в фоновом режиме и т.д.

Пожалуйста, проверьте:

ActivityLifecycle

Там объясняется, что onCreate() это может вызываться несколько раз в различных ситуациях.

P.S. Вы также не можете предотвратить это. Android (и фактически iOS и Windows Phone 7) приостанавливает работу приложения в фоновом режиме.

Комментарии:

1. Спасибо. Именно так я и собираюсь поступить сейчас. Просто интересно узнать, есть ли какой-либо внутренний метод, чтобы остановить это.

2. Проблема может повториться, если приложение запущено, когда экран заблокирован…