Зачем использовать начальные действия?

Я просматривал документацию по API и заметил, что начиная с уровня API 16 класс Context включает следующий метод:

public abstract void startActivities (Intent[] intents)

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

В любом случае, мне любопытно, когда это должно/могло быть использовано в коде приложения, и какие (если таковые имеются) выгоды от этого были бы? Я лично никогда не видел этот метод, и я не понимаю его полезности. Любая обратная связь будет оценена.

Ответ 1

Он редко используется в коде приложения. Я собирался сказать никогда, но я не уверен, что;)

Тем не менее, он может быть использован для создания синтетического заднего стека при запуске новой задачи. Вы хотите иметь готовый задний стек, чтобы обратная клавиша выполняла "иерархически" внутри этой задачи.

Любопытно, что это лучше объясняется в документации ContextCompat, чем в Context.

Запустите набор действий как синтезированный стек задач, если он доступен.

В уровне API 11 (Android 3.0/Honeycomb) рекомендуемые соглашения для навигации по приложениям с использованием обратной клавиши. Поведение задней клавиши является локальной для текущей задачи и не захватывает навигацию через разные задачи. Перемещение по задачам и предыдущая задача выполняется через пользовательский интерфейс "recents", доступный через программный ключ Recents в навигационной системе или системе бар. На устройствах с более старой конфигурацией аппаратной кнопки пользовательский интерфейс ретентатов можно получить с помощью длинного нажатия клавиши "Домой".

При переходе из одного стека задач в другой пост-Android 3.0, приложение должно синтезировать задний стек/историю для новой задачи, поэтому что пользователь может перейти от новой задачи и вернуться к Пусковая установка с помощью повторных нажатий задней клавиши. Обратные нажатия клавиш должны не перемещаться по стекам задач.

startActivities предоставляет механизм для создания синтетической задачи стек нескольких действий. Если базовый API недоступен в системе этот метод вернет false.

Ответ 2

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

Ответ 3

Я использовал этот метод. В некоторых конкретных случаях я очищаю стек задачи при создании нового действия. Но когда я возвращаюсь к активности, которая была уже очищена в стеке задач, я использовал startActivities() для создания искусственного стека задач.