Вопрос

Я пишу простое приложение для Android, и я хотел бы лучше контролировать навигацию / взаимосвязь между действиями.Я не хочу, чтобы мои действия были похожи на действия Android...Я не хочу, чтобы они накапливались в задаче.Я хочу один Activity (давайте назовем это Основная активность) быть точкой приземления и всегда находиться в нижней части стека, и я хочу только один экземпляр моего второго действия (вызвать его Вторая активность), чтобы быть над ним в стеке...было бы неплохо также использовать его повторно.Я думал, что смогу добиться такого поведения, сделав Основная активность быть "главным" Activity, и объявите их обоих как launchMode=singleTop.Это вообще не работает.Я обеспечиваю навигацию между ними с помощью меню, поэтому, когда я несколько раз перехожу туда и обратно и выхожу из приложения, я просматриваю весь стек.

Каков наилучший способ получить точный контроль над выполнением задачи Activity стек?Я хочу Основная активность всегда выходить из приложения, и Вторая активность всегда возвращаться к одному экземпляру MainActivity.Кроме того, я бы хотел, чтобы singleTop заработал, поэтому я бы использовал onNewIntent вместо того, чтобы каждый раз создавать и разрушать.Использование манифеста, а также флага намерения просто не работает.Есть какие-нибудь идеи?

Это было полезно?

Решение

Ну, вы всегда можете просто вызвать "finish()" в рамках любого действия, вызывающего другое действие после вызова "startActivity()".Я бы определенно не советовал пытаться разбивать все приложение на два класса activity и пытаться менять местами представления в зависимости от того, что они делают.Если это так важно для вас, просто закрывайте свои действия, когда запускаете новые (хотя, очевидно, не основное действие).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top