Другорядні методи життєвого циклу класу Activity в Android додатку

&nbsp

У документації Android для опису життєвого циклу активності використовується ще кілька методів (крім основних методів життєвого циклу), які також викликаються на різних етапах «життєвого шляху» активності

Метод onPostCreate викликається після виклику методу onRestorelnstanceState Він може бути корисний, якщо ваш додаток вимагає зберігати стан в два етапи Методу передається обєкт Bundle, що містить стан екземпляра

Метод onPostResume викликається після onResume, коли примірник Activity повинен бути бачимо і повинен взаємодіяти з користувачем

Метод onUserLeaveHint викликається перед тим, як активність повинна перестати бути видимою і перестати взаємодіяти з користувачем через дії самого користувача Наприклад, користувач може натиснути клавішу Back (Назад) або Ноті (Додому) Саме тут зручно видаляти повідомлення та діалогові вікна

У лістингу програми, показаному на рис 116, ви бачите, що ми реалізували перевизначення цих методів, щоб зареєструвати, коли вони будуть викликані Ці методи існують Для таких випадків, коли, наприклад, вам потрібен додатковий етап для відновлення стану екземпляра

Однак якщо вам по-справжньому потрібно зберегти певні дані на період, протягом якого кілька разів зміниться конфігурація, і ці дані не входять у стан, яке зберігається у моделі даних, яка буде збережена, і не входять в Bundle, то можна скористатися методом onRetainNonConfigurationlnstan се, щоб «приховати» посилання на обєкт Потім посилання може бути запрошена новим екземпляром Activity за допомогою методу getLastNonConfigurationlnstance:

Метод onRetainNonConfigurationlnstance викликається після onStop Це означає, що його виклик не гарантується А якщо він і викликаний, то не гарантує, що повернута посилання буде збережена і надана подальшого екземпляру Activity Метод getl_astNonConfigurationInstance () може бути викликаний в методі onCreate чи пізніше, при відновленні стану активності

Щоб проілюструвати, як використовуються ці методи, повернемося до обєкта, який містить ідентифікатор завдання для активності, коли викликається метод onR etainNonConfiguration Instance А коли зголоситься метод onRetai nNonConf и gurationlns tance (Bundle), ми переконаємося, що ідентифікатор завдання не змінився Таким чином, підтверджується, що, хоча примірник компонента або навіть весь процес є новим з точки зору користувача, завдання залишилася тією ж самою

Розповідаючи про практичне застосування цих методів, найчастіше говорять про ситуацію, коли потрібно зберігати результати в веб-запиті: потрібно повторити запит, але час затримки до потрапляння запиту на веб-сервер може досягати декількох секунд Отже, дані можуть бути відтворені, якщо система не може зберегти їх до тих пір, як цю інформацію отримає новий екземпляр обєкта 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>

*

*