Ответ 1
Задача - это просто совокупность всех созданных экземпляром действий приложения.
Например:
Если у нас есть приложение A с действиями A1, A2 и A3 и A2 открывается после того, как A1 и A3 будут открыты после A2, задача для приложения A будет выглядеть так:
|A3|
|A2|
|A1|
Теперь, если мы нажмем кнопку "Назад", A3 выскочит, и пользователю откроется A2. Задача для приложения A теперь будет выглядеть так:
|A2|
|A1|
Если мы нажмем назад, пока все действия не исчезнут, задача будет отброшена, и в следующий раз, когда мы запустим приложение A, Android создаст новую задачу с основным активностью приложения A в качестве первого действия.
Теперь откройте A1, A2 и A3 снова в том же порядке. Приложение. Задача теперь возвращается к:
|A3|
|A2|
|A1|
Теперь предположим, что мы нажимаем кнопку "Домой" и запускаем другое приложение "Приложение B.". Это приведет к тому, что приложение "Целая задача" будет сохранено в фоновом режиме и создаётся новая задача для приложения B с ее созданием основного действия. Итак, теперь у нас есть ситуация, которая выглядит так:
Application A Application B
|A3| |B1|
|A2|
|A1|
Если мы откроем больше действий в приложении B, они будут добавлены к нему так же, как приложение A:
Application A Application B
|A3| |B3|
|A2| |B2|
|A1| |B1|
Теперь, если мы вернемся к Application A, мы поставим задачу на передний план, а задача B будет сохранена в фоновом режиме.
Несколько экземпляров одного и того же действия могут также существовать в одной и той же задаче. Такое поведение можно контролировать.
Если в системе заканчивается память, она начнет убивать действия в фоновом режиме. Если все действия задачи исчезнут, задача также будет уничтожена. ( ОБНОВЛЕНИЕ: В соответствии с этим ответом от Dianne Hackborn, это не отдельные действия, а весь процесс, который содержит их, которые отбрасываются. Документы могут быть немного обманчивыми в этом отношении, и путаница еще предстоит решить. Я обновлю его, когда получу более полную информацию.)
Итак, чтобы подвести итог, задача - это просто набор действий приложения. Он используется для поддержки "стека" или "стоп-кадра" всех созданных действий приложения. Он сохраняется в фоновом режиме, когда все действия приложения находятся в фоновом режиме. Когда одно из этих действий возвращается на передний план, задача также возвращается, а задача текущей деятельности отбрасывается на задний план. Если системе нужна память, фоновые действия и задачи могут быть уничтожены.
Официальные документы дают намного больше информации, и я рекомендую прочитать их:
http://developer.android.com/guide/components/tasks-and-back-stack.html