ЖИТТЄВИЙ ЦИКЛ фрагменті – програмування Android

&nbsp

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

У даному тривіальному додатку-прикладі втрата стану не так важлива А ось справжнє додаток не повинно втрачати стану Користувач буде страшно дратуватися, якщо, наприклад, при перекладі телефону в альбомний режим під час перегляду якої веб-сторінки браузер буде повертатися на домашню сторінку

Щоб додаток зберігало стан, в код потрібно внести всього два невеликих зміни По-перше, в життєвому циклі фрагмента DateTime необхідно перевизначити метод onSavelnstanceState таким чином, щоб він зберігав свій стан По-друге, слід змінити метод onCreate так, щоб він відновлював збережений стан Як і при роботі з активностями, фреймворк Android надає для першого методу обєкт Bundl е, коли робота фрагмента призупиняється Такий же обєкт (Bundl е) надається методу onCreate при реконструировании клона припиненого фрагмента

Щоб додати підтримку стану, змінимо два наступних методу:

І все Якщо припустити таку версію програми через весь життєвий цикл, її стан більше губитися не буде До речі відзначимо, що, оскільки змінна time (і взагалі будь-який стан фрагмента) инициализируется в методі onCreate, її не можна оголосити як final Таким чином, знижується користь від застосування конструктора при завданні стану фрагмента До того ж так дотримується рекомендація, відповідно до якої підкласи Fragment взагалі не повинні мати явних конструкторів

У документації з розробки для Android описаний повний життєвий цикл фрагмента Але один з методів зворотного виклику цього життєвого циклу, onPause, заслуговує особливої ​​уваги Метод onPause важливий під фрагменті з тієї ж причини, з якої він важливий і в активності Щоб додаток добре вписувалося в робоче середовище Android, воно не повинно нічого робити (використовувати процесор, витрачати заряд батареї), поки це додаток є невидимим Середа Android передбачає виклик методу onPause, що відноситься до фрагмента, всякий раз, коли цей фрагмент є невидимим У цьому методі фрагмент повинен вивільняти всі ресурси, які він, можливо, утримує, завершувати всі довготривалі процеси, які міг почати, і т д

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

*

*