На странице " Основы приложений " руководства для разработчиков Android:
По умолчанию все действия в приложении похожи друг на друга, то есть есть предпочтение, чтобы все они принадлежали одной задаче.
Действие «singleInstance» является единственным действием в своей задаче. Если он запускает другое действие, это действие будет запущено в другой задаче независимо от его режима запуска - как если бы FLAG_ACTIVITY_NEW_TASK был в намерении. Во всем остальном режим singleInstance идентичен режиму singleTask.
Как отмечалось выше, никогда не бывает более одного экземпляра действия «singleTask» или «singleInstance», поэтому ожидается, что этот экземпляр будет обрабатывать все новые намерения. Действие «singleInstance» всегда находится на вершине стека (поскольку это единственное действие в задаче), поэтому оно всегда в состоянии обработать намерение. Однако действие "singleTask" может иметь или не иметь другие действия в стеке над ним. Если это так, значит, он не в состоянии обработать намерение, и намерение отбрасывается. (Даже если намерение отброшено, его прибытие привело бы к тому, что задача переместилась бы на передний план, где она и останется.)
Поскольку в любом из режимов запуска никогда не бывает более одного экземпляра Activity, кнопка «Назад» всегда приведет вас к существующему экземпляру Activity в вашем случае.
Важное отличие состоит в том, что для «singleTask» не требуется создание новой задачи для новых Activity, запускаемых при выборе чего-либо. И ему не придется каждый раз удалять эту новую задачу на кнопке возврата.
Поскольку ваш стек Activity относится к одной пользовательской «задаче», и не похоже, что у вас сложная структура Intent, где singleInstance может быть полезен для их обработки, я бы предложил использовать режим запуска singleTask.
Вот хорошее сообщение в блоге для получения дополнительной информации, а также указание на изображение: Серия «Действия и задачи Android» - Введение в компонентную модель пользовательского интерфейса Android.