Я пытаюсь определить, как сохранить приложение в разных жизненных циклах Android, например, запускать другое приложение, переходить в режим сна и т. Д. Я понимаю состояния жизненного цикла и методы событий, которые я могу но я не уверен, как память обрабатывается в отношении того, к чему у меня уже были ссылки. Я хорошо знаю, что мое приложение может быть убито в любое время, если потребуется ОС, но как насчет отдельных ссылок? Вот несколько примеров сценариев: если мое приложение запущено и пользователь получает телефонный звонок, или пользователь запускает другое приложение, или телефон переходит в режим сна. Предполагая, что мое приложение не убито, могу ли я безопасно использовать свои ссылки или я получу случайные указатели на нуль? Я предполагаю, что это сводится к тому, что ... Android либо убивает, либо не убивает и приложение, или будет ли он восстанавливать некоторую память (где есть все еще действительные ссылки) из приложения, не убивая его?Управление памятью Android для жизненного цикла
ответ
В большинстве случаев, когда пользователь переключается на другое приложение или отвечает на него, приложение просто приостанавливается. Когда он вернется, будет вызван onResume()
, и он продолжит свой путь без проблем. Ссылки и что-то должно быть в порядке. Тем не менее, рекомендуется отменить регистрацию слушателей и перерегистрировать их в onResume()
.
Вы всегда должны помнить, что ваше приложение также может быть полностью уничтожено в любое время, поэтому сохраните свои данные.
По правде говоря, в большинстве случаев приложение не будет убито при кратковременном перерыве, например, вызове или электронной почте, но если вы хотите поддерживать эти ситуации, вы должны предварительно очистить или сохранить данные в onPause()
. Когда приложение вернется, оно выполнит onResume()
.
Ссылки не исчезнут до тех пор, пока действие не будет уничтожено, не беспокойтесь о NPE в сценарии паузы -> возобновить, если вы не делаете что-то очень странное.
Если вы используете прослушиватели или GPS, вы должны отменить регистрацию во время onPause()
и возобновить ее позже.
Спасибо за ваш ответ. «Ответ» был присужден Компьютеристу, хотя, поскольку этот ответ пришел первым. – Jake
Совершенно верно, надеюсь, что это помогло. – blindstuff
- 1. Приложение для жизненного цикла Android
- 2. Проблема жизненного цикла Android
- 3. Android - фрагмент жизненного цикла
- 4. Метод жизненного цикла Android
- 5. Фрагмент жизненного цикла Android
- 6. Пример жизненного цикла жизненного цикла
- 7. Управление памятью Android для фотогалереи
- 8. Управление памятью активности Android
- 9. Управление памятью в Android
- 10. Управление памятью изображений в Android
- 11. Сбой жизненного цикла приложения Android
- 12. Деятельность жизненного цикла в Android
- 13. Библиотека жизненного цикла Android-приложения
- 14. Слушатель событий Android для жизненного цикла приложения
- 15. Настройка жизненного цикла Android для разработки
- 16. Ошибка жизненного цикла активности Jellybean для Android
- 17. Приложение для Android Жизненного цикла и singelton
- 18. Проверка жизненного цикла Android-активности
- 19. Путаница жизненного цикла в android
- 20. Android между Активность жизненного цикла
- 21. Слушатель для жизненного цикла фрагмента
- 22. Управление памятью Android (размер кучи)
- 23. Приложение для Android и управление памятью aar
- 24. Управление памятью для статического
- 25. Управление памятью для класса
- 26. Управление памятью для NSURLConnection
- 27. Android - битмап и управление памятью?
- 28. Управление флеш-памятью SoundChannel и управление памятью
- 29. Управление памятью для пользовательского интерфейса
- 30. Каковы методы жизненного цикла приложений для Android? (не методы жизненного цикла активности.)
Спасибо, это то, что мне нужно было знать. Хорошо знать о перерегистрации слушателей. – Jake
Рад, что я мог помочь. Удачи с вашим приложением. – Computerish