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