Прикольное поведение андроида при выключении экрана? - PullRequest
8 голосов
/ 28 ноября 2010

Я наблюдаю некоторый интересный поток активности, когда android выключает экран и блокирует экран ... мое приложение проходит через обычный поток, onCreate, onStart и onResume.Затем я оставил свой телефон там.Когда экран становится черным, вызывается onPause.Все в порядке.Затем через 5 секунд приложение будет убито (onStop, onDestroy).Это тоже хорошо.Но сразу после вызова onDestroy вызываются onCreate, onStart и onResume, перезапуская приложение, даже если на экране ничего нет.Приложение имеет время загрузки, и при запуске оно воспроизводит звук, так что это довольно жутко, когда телефон, который вы установили 30 секунд назад, начинает воспроизводить звуки.Почему Android убивает приложение и перезапускает его?Цель 2.1 - обновление, а телефон - Samsung Captivate.Кто-нибудь еще видел это и знает, как это остановить?

Ответы [ 2 ]

4 голосов
/ 28 ноября 2010

Возможно, это не то, что вы видите, но на моем телефоне что-то подобное происходит, потому что спящий режим всегда в одной ориентации, а если приложение находилось в другой, оно убивается и воссоздается в спящем положении скорее неоптимальный, если вы спросите меня.

Мне кажется, что у вас может не быть таких вещей, как звук вашего запуска, связанных с достаточно конкретными причинами. Что произойдет, если вы поворачиваете телефон, когда он включен? В любом случае вы должны быть в состоянии обнаружить, что экран не включен, и не делать (или откладывать) реальный запуск.

Если виновником является неявное изменение ориентации, вы можете изменить способ обработки вашего приложения с помощью этих параметров - установить вещи, чтобы утверждать, что ваше приложение может измениться на лету вместо необходимости повторного создания.

3 голосов
/ 14 июля 2012

В манифесте действия для каждого приложения добавьте:

android:configChanges="orientation|keyboardHidden"

Это говорит Android, что вы сами разберетесь с этими двумя случаями - хотя, конечно, вы лжете: вы не будете делать дерьмо для обработкиих, но Android этого не знает.Это прекрасно работает для приложений / игр / и т. Д., Работающих, например, в ландшафтном режиме и никогда не меняют ориентацию.

...