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