Splash: не создавать дубликат при тапе по иконке
Если приложение уже запущено (есть задача), launcher-активность добавляется поверх неё. Добавлен guard isTaskRoot: в этом случае SplashActivity сразу закрывается, текущий экран просто разворачивается — без splash и перезапуска. Холодный старт (задача отсутствует) работает как прежде.
This commit is contained in:
@@ -16,6 +16,18 @@ class SplashActivity : Activity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
// Тап по иконке при уже запущенном приложении: система добавляет
|
||||
// SplashActivity поверх существующей задачи. Не создаём дубликат —
|
||||
// закрываемся и показываем текущий экран (как «развернуть», без splash).
|
||||
if (!isTaskRoot &&
|
||||
intent?.action == Intent.ACTION_MAIN &&
|
||||
intent?.hasCategory(Intent.CATEGORY_LAUNCHER) == true
|
||||
) {
|
||||
finish()
|
||||
return
|
||||
}
|
||||
|
||||
// Засчитываем запуск только при холодном старте (процесс был выгружен).
|
||||
// Выход из фона или повторный тап по иконке (процесс жив) не считаем.
|
||||
if (SvxApp.coldStart) {
|
||||
|
||||
Reference in New Issue
Block a user