#1 ОТКЛЮЧЕНИЕ Google-ХЛАМА БЕЗ ROOT С ПОМОЩЬЮ Activity Launcher – Советы и хитрости – Mi Community – Xiaomi

bace  e abf ddc Новости

Activity launcher – видите всё, что спрятано (mi вызов 3) – miui помощь – mi community – xiaomi


Обложка

* Рекомендуется загружать изображения для обложки с разрешением 720*312


Описание темы


Выбрать колонку

Добавить в колонку

Изменения необратимы после отправки

#1 отключение google-хлама без root с помощью activity launcher – miui помощь – mi community – xiaomi

Настоящим вы соглашаетесь с тем, что Xiaomi может собирать, обрабатывать и использовать вашу личную информацию и элементы, включая, помимо прочего, темы, изображения, комментарии, ответы в Mi Community, а также соответствующие данные, перечисленные в Политике конфиденциальности Xiaomi. Выбирая “Принять”, вы соглашаетесь с

Политикой в отношении контента

.

#1 отключение google-хлама без root с помощью activity launcher – советы и хитрости – mi community – xiaomi

ВНИМАНИЕ!!! На некоторых девайсах при заморозке “Google-поиска” получаем BootLoop!
НЕ РЕКОМЕНДУЮ его отключать!

В остальном можно отключать всё то что Вам не нужно и только те приложения которые Вы знаете…
Начнем…
1)Скачиваем Activity Launcher в маркете Activity Launcher / GP, устанавливаем и открываем…

#1 ОТКЛЮЧЕНИЕ Google-ХЛАМА БЕЗ ROOT С ПОМОЩЬЮ Activity Launcher - Советы и хитрости - Mi Community - Xiaomi

2)Вверху нажимаем на “Последние действия” и выбираем “Все действия”

#1 ОТКЛЮЧЕНИЕ Google-ХЛАМА БЕЗ ROOT С ПОМОЩЬЮ Activity Launcher - Советы и хитрости - Mi Community - Xiaomi

#1 ОТКЛЮЧЕНИЕ Google-ХЛАМА БЕЗ ROOT С ПОМОЩЬЮ Activity Launcher - Советы и хитрости - Mi Community - Xiaomi

3)Ищем в списке “Настройки” (нас интересуют первые)

#1 ОТКЛЮЧЕНИЕ Google-ХЛАМА БЕЗ ROOT С ПОМОЩЬЮ Activity Launcher - Советы и хитрости - Mi Community - Xiaomi

4)Ищем в раскрывшемся списке “все приложения” (интересует либо второе либо третье, первое не подходит) — Тыркаем!

#1 ОТКЛЮЧЕНИЕ Google-ХЛАМА БЕЗ ROOT С ПОМОЩЬЮ Activity Launcher - Советы и хитрости - Mi Community - Xiaomi

5)Откроется опять список приложений только в другом окне. Ищем приложение которое хотим вырубить…

#1 ОТКЛЮЧЕНИЕ Google-ХЛАМА БЕЗ ROOT С ПОМОЩЬЮ Activity Launcher - Советы и хитрости - Mi Community - Xiaomi

6)Жмакаем на него и нажимаем “Отключить”

#1 ОТКЛЮЧЕНИЕ Google-ХЛАМА БЕЗ ROOT С ПОМОЩЬЮ Activity Launcher - Советы и хитрости - Mi Community - Xiaomi

7)Вот и Вы отключили приложения!

#1 ОТКЛЮЧЕНИЕ Google-ХЛАМА БЕЗ ROOT С ПОМОЩЬЮ Activity Launcher - Советы и хитрости - Mi Community - Xiaomi

Intent-флаги

Помимо назначения режима запуска непосредственно в

AndroidManifest.xml

, мы также можем регулировать поведение с помощью инструмента, называемого

Intent-флагами

, например:

Intent intent = new Intent(StandardActivity.this, StandardActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

запустит

StandardActivity

с условием singleTop launchMode.

Есть довольно много флагов, с которыми вы можете работать. Вы можете найти больше информации об этом здесь.

Надеюсь, вы нашли эту статью полезной =)

Узнать подробнее о курсе

Singleinstance


Этот режим очень похож на singleTask, где в системе мог существовать только один экземпляр Activity.

Разница в том, что задача, которая располагает этим Activity, может иметь только одно Activity — то, у которого атрибут singleInstance

. Если из этого вида Activity вызывается другое Activity, автоматически создается новое задание для размещения этого нового Activity. Аналогичным образом, если вызывается singleInstance Activity, будет создана новая задача для размещения этого Activity.

В любом случае результат довольно странный. Из информации, предоставленной dumpsys, видно, что в системе есть две задачи, но в диспетчере задач появляется только одна, в зависимости от того, какая из них находится сверху. В результате, хотя есть задача, которая все еще работает в фоновом режиме, мы не можем переключить ее обратно на передний план. Это не имеет вообще никакого смысла.

Вот что происходит, когда вызывается singleInstance Activity, в то время как в стеке уже существует какое-либо Activity.

А вот что мы видим в диспетчере задач.

Поскольку эта задача может иметь только одно Activity, мы больше не можем переключаться обратно на задачу № 1. Единственный способ сделать это — перезапустить приложение из лаунчера, но, как в итоге получится, singleInstance задача будет скрыта в фоновом режиме.

Во всяком случае, есть некоторые обходные пути для этой проблемы. Как и в случае с singleTask Activity, просто назначьте атрибут taskAffinity для singleInstance Activity, разрешающим существование нескольких задач в диспетчере задач.

Теперь картина имеет больше смысла.

Этот режим используется редко. Некоторые из вариантов использования на практике — это лаунчер-Activity или приложение, для которого вы на 100% уверены, что там должно быть только одно Activity. В любом случае, я предлагаю вам не использовать этот режим, если на то нет крайней необходимости.

Singletask

Этот режим сильно отличается от standart и singleTop.

Activity с singleTask launchMode разрешено иметь только один экземпляр в системе (аля синглтон)

. Если в системе уже существует экземпляр Activity, вся задача, удерживающая экземпляр, будет перемещен наверх, а Intent будет предоставлен через метод

onNewIntent()

. В противном случае будет создано новое Activity и помещено в соответствующую задачу.

Работая в одном приложении

Если в системе еще не было экземпляра singleTask Activity, будет создан новый, и он будет просто помещен вверх стека в той же задаче.

Но если он существует, все Activity, расположенные над этим singleTask Activity, автоматически будут жестоко уничтожены надлежащим образом (жизненный цикл закончен), чтобы отобразить на вершине стека нужное нам Activity. В то же время Intent будет отправлен в singleTask Activity через прекрасный метод onNewIntent().

Это не имеет смысла с точки зрения пользовательского опыта, но оно он разработано именно таким образом…

Вы можете заметить один нюанс, который упоминается в документации:

Система создает новую задачу и инстанцирует экземпляр activity в корне новой задачи.

Но на практике похоже, что это работает не так, как описано. SingleTask Activity по-прежнему помещается наверх стека Activity задачи, как видно из результата команды dumpsys activity.

sk id #239
  TaskRecord{428efe30 #239 A=com.thecheesefactory.lab.launchmode U=0 sz=2}
  Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.thecheesefactory.lab.launchmode/.StandardActivity }
    Hist #1: ActivityRecord{429a88d0 u0 com.thecheesefactory.lab.launchmode/.SingleTaskActivity t239}
      Intent { cmp=com.thecheesefactory.lab.launchmode/.SingleTaskActivity }
      ProcessRecord{42243130 18965:com.thecheesefactory.lab.launchmode/u0a123}
    Hist #0: ActivityRecord{425fec98 u0 com.thecheesefactory.lab.launchmode/.StandardActivity t239}
      Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.thecheesefactory.lab.launchmode/.StandardActivity }
      ProcessRecord{42243130 18965:com.thecheesefactory.lab.launchmode/u0a123}


Если вы хотите, чтобы singleTask Activity вело себя так, как описано в документе: создайте новую задачу и поместите Activity в качестве корневого Activity. Вам нужно определить атрибут

taskAffinity

для singleTask Activity следующим образом.

Таким будет результат, когда мы попытаемся запустить

SingleTaskActivity

Ваша задача решить, использовать taskAffinity или нет в зависимости от желаемого поведения Activity.

Взаимодействуя с другим приложением

Как только Intent отправлен из другого приложения, и в системе еще не создано ни одного экземпляра Activity, будет создана новая задача с новым Activity, размещенным в качестве корневого Activity.

Если не существует задачи, которая бы являлась владельцем вызывающей singleTask Activity, вместо нее будет выведено наверх новое Activity.

В случае, если в какой-либо задаче существует экземпляр Activity, вся задача будет перемещена вверх, и для каждого отдельного Activity, расположенного над singleTask Activity, будет завершен жизненный цикл. Если нажата кнопка «Назад», пользователь должен пройти через Activity в стеке, прежде чем вернуться к вызывающей задаче.

Примером использования этого режима является любое Entry Point Activity, например, страница «Входящие» почтового клиента или таймлайн соцсети. Эти Activity не предполагают более чем одного экземпляра, поэтому singleTask отлично справится со своей задачей.

Singletop

Следующий режим —

singleTop

. Он ведет себя почти так же, как и

standard

, что означает, что экземпляров singleTop Activity можно создать столько, сколько мы захотим. Единственное отличие состоит в том, что если уже есть экземпляр Activity с таким же типом наверху стека в вызывающей задаче, не будет создано никакого нового Activity, вместо этого Intent будет отправлен существующему экземпляру Activity через метод

onNewIntent()

В режиме singleTop вы должны предусмотреть обработку входящего Intent в onCreate() и onNewIntent(), чтобы он работал во всех случаях.

Пример использования этого режима — функция поиска. Давайте подумаем о создании окна поиска, которое направляет вас к SearchActivity, чтобы увидеть результаты поиска. Для лучшего UX обычно мы всегда помещаем окно поиска на страницу результатов поиска, чтобы позволить пользователю выполнить следующий поиск, не возвращаясь назад.

А теперь представьте, что если мы всегда запускаем новое SearchActivity, чтобы обслуживать новый результат поиска, то мы получим 10 новых Activity для 10 итераций поиска. Было бы очень странно возвращаться назад, так как вам нужно было бы нажимать назад 10 раз, чтобы пройти через все результаты поиска, чтобы вернуться к корневой Activity.

Вместо этого, если SearchActivity уже находится наверху стека, лучше отправить Intent в существующий экземпляр Activity и позволить ему обновить результат поиска. Теперь будет только одно SearchActivity, размещенное наверху стека, и вы можете просто нажать кнопку «Назад» один раз, чтобы вернуться к предыдущему Activity. В этом больше смысла.

В любом случае singleTop работает в той же задаче, что и вызывающая сторона. Если вы ожидаете, что Intent будет отправлен в существующее Activity, помещенное поверх любой другой задачи, я должен вас разочаровать, сказав, что там это так уже не работает.

В случае, если Intent отправлен из другого приложения в singleTop Activity, новое Activity будет запущено в том же аспекте, что и для standart launchMode (пре-Lollipop: помещено поверх вызывающей задачи, Lollipop: будет создана новая задача).

Определение launchmode

По сути, мы можем определить

launchMode

напрямую в качестве атрибута тега

AndroidManifest.xml


Доступно 4 типа launchMode. Давайте рассмотрим их по очереди.

standard

Это режим «по умолчанию».

Поведение Activity, установленного в этот режим, будет всегда создавать новую Activity, чтобы работать отдельно с каждым отправленным Intent. По сути, если для составления электронного письма отправлено 10 Intent-ов, должно быть запущено 10 Activity, чтобы обслуживать каждый Intent отдельно. В результате на устройстве может быть запущено неограниченное количество таких Activity.

Поведение на пре-Lollipop Android

Этот вид Activity будет создан и помещен в верх стека в той же задаче, которая и отправила Intent.

На рисунке ниже показано, что произойдет, когда мы поделимся изображением со стандартным Activity. Оно будет расположено в стеке в той же задаче, как описано выше, хотя они из разных приложений.

А это то, что вы увидите в диспетчере задач. (Может показаться немного странным)

Если мы переключим приложение на другую задачу, а затем переключимся обратно в Галерею, мы все равно увидим, что стандартный launchMode помещается поверх задачи Галереи. В результате, если нам нужно что-то сделать в Галерее, мы должны сначала закончить нашу работу в этом дополнительном Activity.

Поведение на Lollipop Android

Если эти Activity относятся к одному и тому же приложению, поведение будет таким же, как и в пре-Lollipop реализации — размещение в стеке поверх задачи.

Но в случае, если Intent отправлен из другого приложения, будет создана новая задача и вновь созданное Activity будет размещено в качестве корневого, как показано ниже.

Это то, что вы увидите в диспетчере задач.

Это происходит потому, что в Lollipop модифицирована система управления задачами — она стала лучше и понятнее. В Lollipop вы можете просто переключиться обратно в Галерею, поскольку она находится в другой задаче. Вы можете отправить другой Intent, будет создана новая задача, которая будет обслуживать Intent так же, как и предыдущая.

Примером такого вида Activity является Compose Email Activity (составление письма) или Social Network’s Status Posting Activity (обновление статуса в соцсети). Если у вас на уме Activity, которое отдельно обрабатывает каждый Intent, то вы думаете именно о standard Activity.

Оцените статью
Huawei Devices
Добавить комментарий