Ответ 1
ActivityC будет удален из задачи1, а ActivityB станет в верхней части Activity.
Да, вы правы...
ActivityC будет удалена, то есть будет вызван метод onDestroy ActivityC. Следовательно, когда пользователь снова запускает задачу 1, отображается ActivityB, а не ActivityC.
Создали 2 Задачи (Проекты) и загрузили те же @SendSpace. Попробуйте...
Если вы посмотрите на андроид , то он говорит
"Активность" singleTask "позволяет другим действиям быть частью его задачи. Она всегда лежит в основе ее задачи, но в эту задачу могут быть включены другие действия (обязательно" стандартные "и" одиночные ").
Это означает, что при нажатии кнопки "домой" все действия над одной задачей (которые в вашем случае являются ActivityB) удаляются из стека.
В примере приложения, которое я дал вам ранее, если вы просто запустили проект "AndroidTest" и нажмите кнопку "домой" в журналах, вы увидите, что 2-я операция включена в "Пауза", и когда вы снова запускаете ее из "Недавнее приложение" список 2-й активности уничтожается.
В senario, в котором активность над активными агентами Single Activity (ActivityB) не удаляется из Back Stack, а другой запрос приложения этого Activity (ActivityB) может не отображаться, и намерение может быть удалено. Но у этого есть все меньше шансов на то, что пользователь должен будет нажать кнопку "Домой", но текущая Task\App в BackStack, прежде чем он сможет перейти к другой Task\App.
Следовательно, предупреждение
Другие режимы - singleTask и singleInstance - не подходят для большинства приложений, поскольку они приводят к модели взаимодействия, которая, вероятно, не знакома пользователям и сильно отличается от большинства других приложений.
Надеюсь, это решает ваши сомнения.