Если я нажму на дом и вернусь в свое приложение немного позже, я обнаружим, что состояние сохранено отлично. По какой-то причине, однако, если я заблокирую телефон, а затем разблокирую его, мое приложение было возвращено в исходную панель состояния несколько вещей здесь и там. Когда я просмотрел журналы, я обнаружил, что onCreate был вызван, когда телефон находился в заблокированном состоянии. Потому что блокировка телефона - это совсем не то, что нужно делать, поэтому каждый раз, когда вы делаете это, каждый раз, когда вы делаете это, нежелательно для пользователя. Как этого можно избежать, по крайней мере, в течение более длительного периода времени, чем через несколько секунд после блокировки телефона?поведение экрана блокировки Android
ответ
Как работает ОС Android, он сам решает, когда нужно уничтожить ваш взгляд. Для того, чтобы избежать потерь этой информации есть метод, который может быть переопределен в вашей деятельности
@Override
public void onSaveInstanceState(Bundle outState){
iGameContent.saveGame(outState);
}
Сохранить все ваши необходимые данные в outState, и в OnCreate метода, проверьте, если его новый экземпляр или сохраненный экземпляр, как это:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
if (savedInstanceState!=null){
iGameContent.loadGame(savedInstanceState);
}else{
// Normal initialization
}
}
пример сохранения/загрузки к Bundle заключается в следующем:
public void loadGame(Bundle aBundle){
iBadsHit = aBundle.getInt("iBadsHits",0);
}
public void saveGame(Bundle aBundle){
aBundle.putInt("iBadsHit", iBadsHit);
}
Если ваш журнал показывает, что вызов onCreate был вызван, значит, ваш процесс приложений был убит.
Вы знакомы с жизненным циклом активности Android? Если нет, прочитайте здесь: Android Activities
Да, я так много думаю, но я немного смущен, почему телефон убивает мой процесс на экране блокировки последовательно, но не так (так много), когда телефон все еще используется для других вещей. Кроме того, экран заставки снова не отображается, поэтому процесс не может быть полностью убит – Jack
Также его странное, что вы можете нажать на дом, а затем заблокировать, и состояние будет полностью сохранено. – Jack
Так что он не был убит. Я бы предположил, что ваша игра в пейзажной ориентации, верно? Если это так, вам просто нужно сохранить состояние игры, как описано в ссылке в моем ответе. Вы должны делать это в любом случае, хотя если вы не хотите, чтобы пользователь нажал кнопку «Домой», чтобы перезапустить игру, когда они ее запустили. – C0deAttack
поведение на экране блокировки может изменяться от одного устройства к другому. Некоторые события могут привести к уничтожению приложения. Вы можете попробовать справиться с некоторыми из этих событий, чтобы избежать этой ситуации, указав его на AndroidManifest.xml:
android:configChanges="keyboardHidden|orientation"
Эти два являются наиболее проблематичными в экране блокировки. Yo может найти более подробную информацию о последней главе этого nvidia document
- 1. Запись экрана блокировки экрана Android?
- 2. блокировки ориентации экрана (Android)
- 3. Вращение экрана блокировки Android
- 4. Источник экрана блокировки Android
- 5. поведение блокировки экрана устройства по умолчанию
- 6. Самый длинный путь экрана блокировки экрана Android
- 7. разработка приложения экрана блокировки Android
- 8. Android - Последнее время блокировки экрана
- 9. Android - пользовательская интеграция экрана блокировки
- 10. Android - Поворот экрана программно без блокировки его
- 11. Показать настройки блокировки экрана блокировки экрана?
- 12. Виджет блокировки экрана Lollipop
- 13. Iphone приложение блокировки экрана
- 14. PhoneGap - предотвращение блокировки экрана
- 15. Событие состояния блокировки-блокировки экрана устройства в android
- 16. Использование встроенного экрана блокировки экрана в приложении
- 17. Как установить изображение экрана блокировки Android
- 18. Android onCreate вызывается после блокировки экрана
- 19. Android API для изменения типа блокировки экрана
- 20. Экран блокировки и разблокировки экрана эспрессо Android
- 21. Android приложение работает после блокировки экрана
- 22. Эффект блокировки экрана на Android 4.2.2
- 23. Активность Android по умолчанию блокировки экрана
- 24. Android: включение и выключение экрана без блокировки
- 25. Android 2.2 Защита от блокировки экрана
- 26. Android: широковещательная передача при появлении блокировки экрана
- 27. Android: Эспрессо-тест для экрана блокировки/главного экрана
- 28. Предоставить собственный способ блокировки экрана
- 29. поведение экрана блокировки для моего приложения в WP7
- 30. Изменение поведения экрана блокировки iOS
Речь идет о долгосрочных сбережениях (например, рекордах) или краткосрочных (например, последний уровень играл)? – Jack
Нет, на короткий срок. Если вы закроете приложение, пакет будет очищен. onSavedInstanceState это должно показаться, что система не убила приложение – Corbella
Просто напишите все переменные класса в этом комплекте, и он будет восстановлен при поступлении из фона или изменении ориентации. Но не при запуске приложения – Corbella