Когда я блокирую экран, пока мое приложение работает «сверху», система вызывает почти сразу onCreate (экран по-прежнему остается черным). Что может быть причиной такого деструктивного поведения?Android onCreate вызывается после блокировки экрана
ответ
Как работает ОС Android, он решает, когда нужно уничтожить ваше представление. Когда вы блокируете свой телефон, приложение переходит в состояние паузы (onPause) жизненного цикла активности.
Когда действие находится в состоянии паузы, и если оно занимает много памяти, система андроида имеет права убить ваше приложение (onStop).
Поэтому он должен вызывать CreateCreate, чтобы воссоздать ваш вид, когда вы его разблокируете.
Он фактически переходит в 'onPause', а затем в' onStop' при блокировке экрана. – TronicZomB
Я, хотя я имел в виду это, заявив, что ваше приложение переходит в состояние паузы – user2336315
вызов onCreate, когда система хочет уничтожить мою деятельность, кажется, не очень логична ... – user2224350
onDestroy() вызывается, когда после возвращения экрана вы видите рабочий стол (приложение отключения onDestroy()).
После того, как экран вернулся, и вы увидите первый макет/представление своего приложения, он называется onStop() и onCreate().
После того, как экран вернулся и вы увидите тот же вид, перед тем как экран исчез, тогда вызывается onPause() и onResume().
Для меня я
android:configChanges="orientation"
, но это не поможет, потому что моя деятельность была на весь экран, и поэтому я добавил
android:configChanges="keyboardHidden|orientation|screenSize"
в деятельности теге
Как уже упоминалось в Handling the Configuration Change Yourself
Если y нашему приложению не нужно обновлять ресурсы во время определенного изменения конфигурации, и у вас есть ограничение производительности, которое требует, чтобы вы не перезапускали активность, тогда вы можете объявить, что ваша активность сама обрабатывает изменение конфигурации, что не позволяет системе перезапустить вашу деятельность ,
Это происходит, если мероприятие находится в ландшафтном режиме, а экран блокировки включен пользователем.
Там могут быть две причины этого:
Если какой-либо тип блокировки экрана включена и активность в ландшафтном режиме: Если устройство блокировки экрана в портретном режиме, когда устройство заблокировано он автоматически переключается в портретный режим (даже если ваша активность была в ландшафтном режиме). И когда устройство разблокировано, ваша активность становится видимой, но она снова переходит из «Портрет» («Когда заблокирована») в «Пейзаж», поэтому «Активность» уничтожается и воссоздается.
Как работает операционная система Android, она решает, когда нужно уничтожить ваш просмотр. Когда вы блокируете свой телефон, приложение переходит в состояние паузы (onPause) жизненного цикла активности. Когда действие находится в состоянии паузы, и если оно занимает много памяти, система имеет права убить ваше приложение (onStop then onDestroy). Поэтому, когда вы открываете его, системные вызовы (onCreate) воссоздают ваше представление.
Решение:
- Вы должны тщательно сохранить и проверить состояние с помощью
onSaveInstanceState()
ИЛИ - Использование
android:configChanges="orientation|screenSize"
для тега действия в манифесте.
- 1. Android: onRestoreInstanceState не вызывается после пробуждения экрана (и блокировки)
- 2. Android openFileChooser onCreate() вызывается после onActivityResult()
- 3. Почему onStart() вызывается после onCreate()?
- 4. Android: onCreate вызывается повторно
- 5. Измените ориентацию экрана экрана, когда setRequestedOrientation вызывается в onCreate
- 6. поведение экрана блокировки Android
- 7. Android приложение работает после блокировки экрана
- 8. Почему onCreate() вызывается после onConfigurationChanged?
- 9. onStop() вызывается сразу после onCreate()
- 10. Запись экрана блокировки экрана Android?
- 11. блокировки ориентации экрана (Android)
- 12. Вращение экрана блокировки Android
- 13. Источник экрана блокировки Android
- 14. Android ORMLite DbHelper OnCreate() не вызывается даже после удаления
- 15. Android - Применение метода onCreate - ВСЕГДА вызывается первым?
- 16. Android ListActivity: onCreate вызывается каждый раз после поворота экрана, выбранный элемент сбрасывается, но визуально остается проверенным.
- 17. Камера замерзает после блокировки экрана
- 18. Android onCreate() не вызывается с уведомлением
- 19. Почему метод oncreate вызывается после startActivityForResult?
- 20. OnCreate() не вызывается
- 21. Чтение акселерометра после блокировки экрана
- 22. onCreate не вызывается, когда экран вращается - Android
- 23. Самый длинный путь экрана блокировки экрана Android
- 24. Диалог OnCreate и поворот экрана
- 25. разработка приложения экрана блокировки Android
- 26. Android - Последнее время блокировки экрана
- 27. Android - пользовательская интеграция экрана блокировки
- 28. Уменьшить время ожидания после блокировки экрана
- 29. Как остановить звук после блокировки экрана
- 30. Изменение проблемы ориентации экрана: onCreate
'onCreate' вызывается при изменении ориентации экрана и в более поздней версии Android при изменении размера экрана. Трудно сказать, почему это происходит с вами, без какого-либо кода или XML. Чтобы остановить вызов 'onCreate' в некоторых моих приложениях, я добавил' android: configChanges = "keyboardHidden | orientation | screenSize" 'в действия, которые я не хотел вызывать' onCreate' при изменении ориентации или размера экрана. – HeatfanJohn
+1 Downvoters должен добавить комментарий, дающий критические отзывы о том, как улучшить вопрос при downvoting. – HeatfanJohn