Приложение Android перезапускается при выборе значка Launcher — пользователь вышел из системы

У меня есть приложение с экраном входа в систему, которое выводит пользователя на заставку. Если пользователь выходит из приложения, а затем снова щелкает значок запуска, ему нужно снова войти в систему. Это происходит только в том случае, если я устанавливаю приложение на устройство с помощью файла apk. Если я запускаю его в режиме отладки с подключенным к устройству eclipse, то этого не происходит. В режиме отладки, если я нажму кнопку запуска после выхода из приложения, я вернусь к своему заставке, что является ожидаемым поведением.

Проблема в том, что я не знаю, что происходит, если я устанавливаю приложение на устройство с помощью файла apk. Я не могу получить доступ к журналам или отладке. Экран-заставка не автоматически выходит из системы при возобновлении работы.

Кто-нибудь знает, почему это происходит или что я могу сделать для дальнейшего расследования?


person Santiago    schedule 23.04.2013    source источник


Ответы (3)


Взгляните на эту страницу.

Я думаю, что может происходить то, что во время метода onPause или onStop что-то запускается, что приводит к игнорированию информации о вашем сеансе. Вызов Pause или Stop зависит от доступных ресурсов и может иметь различный результат в режиме отладки и обычном режиме работы.

Я бы предложил добавить эти функции в вашу активность, посмотреть, какие из них вызываются (а также их партнеры по Create и Resume) и определить, не является ли это причиной ваших проблем.

У меня лично были похожие проблемы с освобождением ресурсов, когда приложение теряет фокус.

person smitec    schedule 23.04.2013

Я думаю, говоря «когда пользователь уходит», вы имеете в виду, что пользователь переходит в другое приложение или делает что-то еще. Таким образом, в этом случае onPause() будет вызываться, когда ваше приложение будет приостановлено, и onSaveInstanceState(), когда ваше приложение будет уничтожено.

Таким образом, вы можете захотеть выполнить действие выхода явно как в onPause(), так и в onSaveInstanceState(), чтобы ваше приложение имело согласованное поведение.

person StoneBird    schedule 23.04.2013