Ze strony Application Fundamentals w przewodniku dla programistów Androida:
Domyślnie wszystkie działania w aplikacji są ze sobą powiązane - to znaczy, że preferowane jest, aby wszystkie należały do tego samego zadania.
Działanie „singleInstance” występuje samodzielnie jako jedyne działanie w ramach swojego zadania. Jeśli rozpocznie inną czynność, zostanie ona uruchomiona w innym zadaniu niezależnie od trybu uruchomienia - tak jakby FLAG_ACTIVITY_NEW_TASK było w zamiarze. Pod wszystkimi innymi względami tryb „singleInstance” jest identyczny z trybem „singleTask”.
Jak wspomniano powyżej, nigdy nie istnieje więcej niż jedno wystąpienie działania „singleTask” lub „singleInstance”, więc oczekuje się, że to wystąpienie będzie obsługiwać wszystkie nowe intencje. Aktywność „singleInstance” zawsze znajduje się na szczycie stosu (ponieważ jest to jedyna czynność w zadaniu), więc zawsze jest w stanie obsłużyć intencję. Jednak działanie „singleTask” może mieć inne działania na stosie lub nie. Jeśli tak, to nie jest w stanie poradzić sobie z intencją i zamiar zostaje odrzucony. (Nawet jeśli zamiar został odrzucony, jego nadejście spowodowałoby, że zadanie wyszłoby na pierwszy plan, gdzie pozostałoby).
Ponieważ nigdy nie ma więcej niż jednej instancji działania w jednym z trybów uruchamiania, przycisk Wstecz zawsze przeniesie Cię do istniejącej instancji działania w Twoim przypadku.
Ważną różnicą jest to, że „singleTask” nie wymaga tworzenia nowego zadania dla nowych działań uruchamianych, gdy coś zostanie wybrane. Nie będzie też musiał za każdym razem usuwać tego nowego zadania z przycisku Wstecz.
Ponieważ twój stos działań odnosi się do „zadania” jednego użytkownika i nie wygląda na to, że masz skomplikowaną strukturę intencji, w której singleInstance może być korzystne, aby zawsze je obsługiwać, sugerowałbym użycie trybu uruchamiania pojedynczego zadania.
Tutaj jest dobry post na blogu, aby uzyskać więcej informacji, a także napisać autorstwo obrazu: Seria działań i zadań systemu Android - wprowadzenie do modelu komponentów interfejsu użytkownika systemu Android