Ответ
singleTop и singleTask — это флаги launchMode в Android, определяющие поведение активити при запуске.
singleTop:
Если активити уже находится на вершине стека, новый инстанс не создается, а вызывается onNewIntent() для существующего. Если активити не на вершине, создается новый инстанс.
Пример:
<activity android:name=".MyActivity" android:launchMode="singleTop" />
singleTask:
Создается только один инстанс активити в отдельном таске (стеке). Если активити уже существует, система вызывает onNewIntent() и очищает все активити над ним.
Пример:
<activity android:name=".MainActivity" android:launchMode="singleTask" />
Разница:
singleTopпроверяет только вершину стека,singleTask— весь стек.singleTaskможет очистить активити над собой,singleTop— нет.singleTaskобычно используется для главного экрана,singleTop— для уведомлений или повторяющихся действий.