Візуалізація життєвого циклу активності Android програми

&nbsp

Ми наочніше представимо вам життєвий цикл компонента Activity, запустивши спеціально створену програму і вивчивши, як працюють методи життєвого циклу Activity у вигляді LogCat програми Eclipse Наступний код – це лістинг підкласу Activity У цьому підкласі реалізовані методи життєвого циклу, а в кожному методі присутні виклики реєстрації Виноски в коді анотує докладний опис обробки життєвого циклу – це опис починається в пункті «Методи життєвого циклу класу Activity» далі Розглянемо цей лістинг і вивчимо, яка інформація буде реєструватися:

Коли ви готові запустити додаток, спочатку відображуватимете вид LogCat, виконавши команду Window ► Show View ► Other (Вікно ► Відобразити вид ► Інші), і відкрийте каталог Android в діалоговому вікні Show View (Відобразити вид) Потім виберіть LogCat (рис 111)

Тепер запустіть додаток в емуляторі або на фізичному пристрої Оскільки приклад побудований із застосуванням інтерфейсів Fragment API і Android API версії 11, відповідних версії операційної системи Android 30 Honeycomb, а також із застосуванням класу Fragment з пакету Android для забезпечення сумісності, ви можете запускати приклад за допомогою будь-який з цих баз коду

У вигляді LogCat в програмі Eclipse почне зявлятися реєстраційна інформація Щоб відобразити тільки ту реєстраційну інформацію, яка відноситься до коду, наведеному в попередньому лістингу, загальний обсяг інформації можна відфільтрувати Натисніть зелений символ «+» на панелі інструментів у вікні реєстрації Відкриється діалогове вікно для визначення фільтра реєстраційної інформації (рис 112)

Рис 111 Вибір LogCat з показаного списку

Рис 112 Створення фільтра, який дозволяє відобразити тільки ті дані з журналу реєстрації, які відзначені як RnchLifecycle

У даному випадку ми збираємося фільтрувати журнал реєстрації на підставі мітки, якої ми скористалися в класі FinchLifecycle Ця мітка називається так само, як і клас: FinchLifecyclе Фільтр ми назвемо actіvity-lіfecycle (життєвий цикл активності), як показано на рис 112

Тепер при запуску програми ви побачите тільки ту реєстраційну інформацію, яка відноситься до методів життєвого циклу активності Ця інформація буде міститися на вкладці activity-1ifecyclе у вигляді LogCat Якщо ви хочете бачити всю реєстраційну інформацію, то на вкладці Log (Журнал) буде відображатися журнал без фільтрації

Якщо запустити програму в емуляторі Android 30, ви побачите приблизно той же, що і на рис 113

Рис 113 Код прикладу, запущений в емуляторі Android 30

Перше, що ви побачите на вкладці activity-lifecycle у вигляді LogCat, – кілька повідомлень з журналу реєстрації (рис 114)

Рис 114 Інформація з реєстраційного журналу, де показані новий процес і відновлене стан активності

Щоб згенерувати цікаву нам реєстраційну інформацію, можна запустити кілька додатків, пару раз перейти з одного в інше, користуючись для повернення в додаток Finch перемикачем додатків або інструментом Launcher Після того як ви запустите досить багато додатків і повернетеся назад в Finch, ви побачите, що ідентифікатор процесу (PID) змінився, але сам додаток, як здається, залишилося в тому ж стані, в якому ви його покинули Це пояснюється тим, що стан даної активності, як і всі інші компоненти програми, було відновлено з збереженого стану Реєстраційна інформація, наведена на рис 115, показує саме така зміна

Запускаючи інші додатки, які споживають память, ви одночасно задіюєте деякі стратегії, які застосовуються в Android для звільнення памяті Зрозуміло, оскільки програми Android працюють на віртуальній машині, що нагадує віртуальну машину Java, то першим ділом починається збірка сміття У ході її звільняється память, зайнята невикористовуваними екземплярами обєктів, на які відсутні посилання Android задіє і ще одну стратегію збірки сміття: компоненти активності, невидимі для користувача, можуть зберігати свій стан, а потім знищуються Це всього лише означає, що система видаляє посилання на ці компоненти, і після цього такі компоненти можуть потрапити в збірку сміття В Android використовується ще одна стратегія звільнення памяті: наказуючи всім компонентам додатки зберегти стан, можна видалити цілі процеси і відновити память, яку вони займали Саме так в Android реалізується збірка сміття, що охоплює відразу по кілька процесів

Рис 115 Інформація з реєстраційного журналу, де показані новий процес і відновлене стан активності

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*