МЕТОДИ ЖИТТЄВОГО ЦИКЛУ КЛАСУ ACTIVITY

&nbsp

Тепер, розібравшись, коли і чому взагалі викликаються методи життєвого циклу, розглянемо окремі методи з наведеного вище лістингу

Метод onCreate викликається після створення екземпляра Activity Саме тут відбувається велика частина ініціалізації основної маси додатків: зчитування макетів в память і створення примірників View, звязування з даними і т д Зверніть увагу: якщо даний екземпляр Actіvity не був зруйнований, а процес не був завершений, то цей метод більше не викликається Він викликається тільки при створенні нового екземпляра класу Actіvity Аргументом для даного методу є обєкт Bundle, що містить збережений стан програми Якщо збереженого стану немає, то цей аргумент має значення null

Метод onRestart викликається тільки в тому випадку, якщо активність була зупинена «Зупинена» – означає, що активність не знаходиться на передньому плані і не взаємодіє з користувачем Цей метод викликається до методу onStart

Метод onStart викликається, коли обєкт Actіvity і його види стають видні користувачеві

Метод onResume викликається, коли користувач отримує можливість взаємодіяти з обєктом Actіvity і його видами

Метод onPause викликається перед тим, як Повинен стати видимим інший примірник Activity, а актуальна Activity перестає взаємодіяти з користувачем

Метод onStop викликається, коли активність більш невидима користувачеві і він не може з нею взаємодіяти

Метод onDestroy викликається перед тим, як екземпляр Activity повинен бути знищений, тобто знятий з використання Перед викликом цього методу активність вже перестала взаємодіяти з користувачем і більше не відображається на екрані Якщо цей метод викликається в результаті виклику до finish, то виклик isFinishing поверне true

Збереження та відновлення стану екземпляра

Очищення памяті і життєвий цикл компонента – без цих етапів у роботі ніяк не обійтися Ось чому підкласи вашої Activity повинні зберігати стан Нижче описано, як і коли це потрібно робити

Клас Bundl е існує для того, щоб зберігати в ньому серіалізовані дані у формі пар «ключ – значення» Дані можуть ставитися до примітивних типам або будь-якого типу, що реалізовує інтерфейс Parcelable Про клас Bundl е докладніше розказано на сайті розробників Android за адресою http://developer androidcom / reference / android / os / Bundlehtml При збереженні стану активності використовуються методи put класу Bundle

При виклику методів onCreate і onRestorelnstanceState обєкт Bundle передається цьому методу Обєкт Bundle містить дані, які в нього помістив попередній екземпляр того ж класу Actіvity, щоб інформація про конкретну активності зберігалася між її інстанцірованія Тобто якщо екземпляр Activity має стан, не рахуючи того, яке долговременно зберігається в моделі даних, цей стан можна зберігати, а потім відновлювати в численних примірниках класу Activity З точки зору користувача, він повертається до роботи з тієї самої активністю, від роботи з якою довелося відірватися, але фактично користувач може побачити абсолютно новий екземпляр класу Activity, можливо виконуваний в абсолютно новому процесі

Ймовірно, ви помітили, що в життєвому циклі методу onPause не надається обєкт Bundl е для збереження стану Отже, коли зберігається стан Існують окремі методи класу Activity, призначені для збереження стану, а також методи для повідомлення про те, що стан відновлюється

Тут додаток отримує можливість зберегти стан екземпляра Стан екземпляра – це такий стан, який не зберігається в довготривалій памяті разом з моделлю даних програми Прикладом стану екземпляра може бути, наприклад, стан індикатора або іншого елемента, повністю входить до складу обєкта Activity Цей метод має реалізацію і в батьківському класі: він викликає метод onSavelnstanceState кожного обєкта View в даному екземплярі Activity У результаті зберігається стан цих обєктів View, і часто це єдиний стан, який доводиться зберігати таким чином Дані, які повинен зберегти ваш підклас, зберігаються за допомогою методів put класу Bundle

Метод onRestorelnstanceState викликається, коли є стан екземпляра, яке слід відновити Якщо цей метод викликається, то такий виклик відбувається після onStart і до onPostCreate, рідко використовуваного методу життєвого циклу, описаного в пункті «Другорядні методи життєвого циклу класу Activity» далі

Джерело: 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>

*

*