На сторінці Основи програм посібника розробника Android:
За замовчуванням усі дії в програмі мають спорідненість одна з одною - тобто існує перевага, щоб усі вони належали до одного завдання.
Діяльність "singleInstance" виокремлюється як єдина діяльність у своєму завданні. Якщо він розпочне іншу діяльність, ця діяльність буде запущена в інше завдання, незалежно від режиму його запуску, - ніби FLAG_ACTIVITY_NEW_TASK мав намір. У всьому іншому режим "singleInstance" ідентичний "singleTask".
Як зазначалося вище, ніколи не існує більше одного екземпляра діяльності "singleTask" або "singleInstance", тому цей екземпляр повинен обробляти всі нові наміри. Діяльність "singleInstance" завжди знаходиться у верхній частині стека (оскільки це єдина діяльність у завданні), тому вона завжди в змозі обробляти намір. Однак діяльність "singleTask" може мати або не мати в стеці інших дій, що перевищують її. Якщо це сталося, він не в змозі обробити намір, і намір відкидається. (Навіть незважаючи на те, що намір відмовляється, його прибуття призвело б до того, що завдання вийшло на перший план, де воно і залишилось би).
Оскільки в будь-якому з режимів запуску ніколи не існує більше одного екземпляра Діяльності, кнопка "Назад" завжди переведе Вас до існуючого екземпляра Діяльності у Вашому випадку.
Важливою відмінністю є те, що "singleTask" не вимагає створення нового завдання для нових дій, що запускаються, коли щось вибрано. Також не доведеться щоразу видаляти це нове завдання на кнопці "Назад".
Оскільки ваш стек Activity стосується всього одного "завдання" користувача, і це не схоже на те, що у вас складна структура Intent, де singleInstance може бути корисним завжди обробляти їх, я б запропонував використовувати режим запуску singleTask.
Ось хороший допис у блозі для отримання додаткової інформації, а також заслуги за зображення: Серія Android and Tasks - Вступ до моделі компонента інтерфейсу користувача Android