Переопределение поведения действия / задачи в Android
-
20-09-2019 - |
Вопрос
Я пишу простое приложение для Android, и я хотел бы лучше контролировать навигацию / взаимосвязь между действиями.Я не хочу, чтобы мои действия были похожи на действия Android...Я не хочу, чтобы они накапливались в задаче.Я хочу один Activity
(давайте назовем это Основная активность) быть точкой приземления и всегда находиться в нижней части стека, и я хочу только один экземпляр моего второго действия (вызвать его Вторая активность), чтобы быть над ним в стеке...было бы неплохо также использовать его повторно.Я думал, что смогу добиться такого поведения, сделав Основная активность быть "главным" Activity
, и объявите их обоих как launchMode=singleTop
.Это вообще не работает.Я обеспечиваю навигацию между ними с помощью меню, поэтому, когда я несколько раз перехожу туда и обратно и выхожу из приложения, я просматриваю весь стек.
Каков наилучший способ получить точный контроль над выполнением задачи Activity
стек?Я хочу Основная активность всегда выходить из приложения, и Вторая активность всегда возвращаться к одному экземпляру MainActivity.Кроме того, я бы хотел, чтобы singleTop заработал, поэтому я бы использовал onNewIntent
вместо того, чтобы каждый раз создавать и разрушать.Использование манифеста, а также флага намерения просто не работает.Есть какие-нибудь идеи?
Решение
Ну, вы всегда можете просто вызвать "finish()" в рамках любого действия, вызывающего другое действие после вызова "startActivity()".Я бы определенно не советовал пытаться разбивать все приложение на два класса activity и пытаться менять местами представления в зависимости от того, что они делают.Если это так важно для вас, просто закрывайте свои действия, когда запускаете новые (хотя, очевидно, не основное действие).