Я пишу приложение, в котором есть два «режима»; один режим просмотра и один режим редактирования . Приложение предоставляет два основных / запускающих действия (скажем, A и D ), которые в свою очередь имеют свои собственные цепочки действий ( B , C * 1016). * и E , F соответственно). В двух действиях точки входа A и D на главном экране отображаются две иконки с отдельными метками, и две цепочки никогда не пересекаются, т. Е. После запуска приложения в режиме просмотра с активность A , единственный маршрут, по которому вы можете идти назад и вперед, это A , B , C , и если вы запускаете приложение в режиме редактирования режим с активностью D , единственная доступная цепочка действий - D , E , F .
Теперь моя проблема в том, что если запустить приложение, например, в. режим просмотра (цепочка действий A , B , C ) и нажмите кнопку «Домой» из любого действия в этой цепочке. Я возвращаюсь на главный экран (конечно же ) но если я затем перезапущу приложение в режиме редактирования (цепочка действий D , E , F ), я получаю активность, которая была включена при нажатии кнопка «Домой» (то есть активность в неправильной цепочке) - не ожидаемая точка входа для режима редактирования; активность Д .
Как мне решить эту проблему?
Я пробовал различные комбинации android:noHistory
, android:clearTaskOnLaunch
и других атрибутов в AndroidManifest.xml
для соответствующих действий. Но они, похоже, влияют только на саму деятельность, а не на всю цепочку.
Я хотел бы удалить всю цепочку действий ( A , B , C или D , E , F ) из стека истории, когда нажата кнопка «Домой», но при этом все еще остается в стеке, пока я в цепочке (я хочу иметь возможность нажать кнопку «Назад», скажем, , занятие B и переход к занятию A ).