Зміна поведінки завдання за допомогою прапорів намірів в Android додатку

&nbsp

Поведінка завдання в основному визначається атрибутами тега activity, що знаходиться у файлі опису Винятки з цього правила дозволяє робити набір прапорів, які задаються в обєкті Intent

Виявляється, існує дивно багато способів зміни поведінки завдання за допомогою прапорів намірів Деякі прапори, безсумнівно, корисні, а деякі просто ускладнюють і без того заплутану область функціоналу системи

FLAG_ACTIVITY_BROUGHT_TO_FRONT – використовується системою для реалізації поведінки, яке застосовуватиметься, якщо для Activity задані атрибути запуску singleTask або singlelnstance

FLAG_ACTIVITY_CLEAR_TASK – вказує завдання, які необхідно очистити перед запуском нової активності, тобто нова активність стає новою кореневої активністю завдання

FLAG_ACTIVITY_CLEAR_TOP – в результаті застосування цього прапора активність, для якої підходить обєкт Intent з таким прапором, поміщається на верхньому рівні стека активностей Якщо це стек активностей завдання, виконуваної зараз, то прапор викликає завершення всіх активностей вище тієї, що підходить для даного обєкта Intent Та активність, яка виявляється на верхньому рівні стека активностей, теж завершується і відтворюється, крім тих випадків, коли вона може отримати нове намір за допомогою методу onNewIntent ()

FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET – вказує, що запускається активність повинна опинитися на верхньому рівні нового стека активностей, якщо поточна завдання буде скинуто «Скидання» в даному випадку означає очищення верхній частині стека активностей Це робиться по закінченні деякого часу

FLAG_ACTI VITY_EXCLUDE_FROM_RECENTS – активність, що запускається з цим прапором, не зберігається в стеку активностей

FLAG_ACTIVITY_FORWARD_RESULT – означає, що нова активність може надати результати тієї активності, яка запустила поточну активність Іншими словами, батьківська активність каже їй: «Гей, відповідай »

FLAG_ACTI V ITY_LAUNCHED_FROM_H I STORY – означає, що нова активність була запущена зі списку «недавніх» активностей, заміщаючи екземпляр, який незадовго до цього був зруйнований

FLAG_ACTIVITY_MULTIPLE_TASK – означає, що нова активність може бути кореневої для декількох завдань, і якщо вона використовується з активністю, що має прапор FLAG_ACTIVITY_NEW_TASK, то створюється кілька завдань Користувача цей момент може запитати, оскільки в системі Android відсутній спосіб розрізнення декількох завдань, що мають спільну кореневу активність

FLAG_ACTIVITY_NEW_TASK – означає, що нова активність є коренем нового завдання, але якщо вказано ще й прапор FL AG_ACT IVI TY_MULT I PL E_TASK В останньому випадку створюється кілька завдань з одного кореневої активністю і застосовуються згадані вище заходи

FL AG_ACTIVITY_NO_ANIMATION – пригнічує анімацію переходів (transition animation)

FLAG_ACTIVITY_NO_HISTORY – нова активність не входить в «стек переходів назад» Прапор аналогічний атрибуту noHistory

FLAG_ACTIVITY_NO_USER_ACTION – пригнічує зворотний виклик onUserLeaveHint для актуальною активності Оскільки зазначений зворотний виклик використовується для видалення повідомлень, такого видалення відбуватися не буде Даний прапор корисно використовувати при переходах між активностями, якщо перехід не ініційований користувачем, наприклад у випадках, коли телефон приймає вхідний дзвінок або SMS-повідомлення

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

FLAG_ACTIVITY_REORDER_TO_FRONT – якщо активність вже працює, то вона буде піднята на верхній рівень стека активностей і стане видимою

Частина з описаних прапорів зявилася ще в API рівня 1 і ігнорується в більш ранніх API

Деякі перераховані прапори перевизначають поведінка завдання, дане в файлі опису Якісь прапори впливають на інші поведінки, наприклад на анімацію переходів А в деяких випадках постановка прапора у обєкту Intent – це єдиний спосіб змінити поведінку завдання

Застосовуйте такі прапори з обережністю Несподіване поведінку задачі може дезорієнтувати користувача в ітнтерфейсе Android

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

*

*