- •Використання LogCat
- •Повороти і життєвий цикл активності
- •Конфігурації пристроїв і альтернативні ресурси
- •Створення макету для альбомної орієнтації
- •Збереження даних між поворотами
- •Перевизначення onSaveInstanceState(Bundle)
- •Знову про життєвий цикл Activity
- •Контрольні запитання
- •Виконання(додаток мабуть і знаходиться на передньому плані)
- •Для допитливих: тестування onSaveInstanceState(Bundle)
Виконання(додаток мабуть і знаходиться на передньому плані)
Мал. 3.14. Повний життєвий цикл активності
У деяких ситуаціях Android не лише знищує активність, але і повністю завершує процес додатка. Така ситуація може виникнути тільки у тому випадку, якщо користувач не дивиться на додаток, але вона можлива. Навіть в цьому випадку запис активності продовжує існувати і дозволяє швидко перезапустити активність при поверненні користувача.
Коли ж запис додатка пропадає? Коли користувач натискає кнопку Back, активність знищується — раз і назавжди. При цьому запис активності втрачається. Записи активності також зазвичай знищуються при перезавантаженні; також можливе їх знищення у тому випадку, якщо вони занадто довго не використовуються.
Для допитливих: тестування onSaveInstanceState(Bundle)
Перевизначаючи onSaveInstanceState(Bundle), необхідно переконатися в тому, що стан зберігається і відновлюється так, як передбачалося. Це легко робиться в емуляторі.
Запустіть віртуальний пристрій. У списку додатків на пристрої знайдіть додаток Settings. Воно є присутнім у більшості образів системи, використовуваних в емуляторі.
Мал. 3.15. Пошук додатка Settings
Запустіть додаток Settings і виберіть категорію Development options. У неї входить багато різних налаштувань; встановіть прапорець Don't keep activities.
Запустіть додаток і натисніть кнопку Home. Це приведе до призупинення і зупинки активності. Потім зупинена активність буде знищена так, як якби ОС Android вирішила звільнити займану їй пам'ять. Відновіть додаток і подивіться, чи був стан збережено так, як очікувалося.
Натиснення кнопки Back(замість Home) завжди призводить до знищення активності незалежно від того, встановлений прапорець в налаштуваннях розробника або ні. Натиснення кнопки Back повідомляє ОС, що користувач завершив роботу з активністю.
Щоб виконати той же тест на фізичному пристрої, необхідно встановити на ньому пакет Dev Tools. За додатковою інформацією звертайтеся за адресою http://developer.android.com/tools/debugging/debugging-devtools.html.
Мал. 3.16. Заборона збереження активностей
Контрольні запитання
Які стани життєвого циклу ви знаєте?
Поясніть, де викорстовують програму LogCat?
Поясніть роботу метода onSaveInstanceState(.)?
Намалюйте блок-схему повного життєвого циклу активності, поясніть його роботу?
