Сохранение заданной c активности поверх backstack - PullRequest
0 голосов
/ 11 февраля 2020

В нашем приложении мы используем операцию C из библиотеки, которая всегда должна быть на вершине заднего стека (или всегда должна быть видимой в случае, если быть на вершине невозможно).

Например, у нас есть действие A, в котором выполняется некоторая асинхронная работа. В какой-то момент запускается действие C, поэтому backstack выглядит так: A -> C. Когда асинхронное задание в A выполнено, оно должно запустить действие B таким образом, чтобы C все еще был виден, но B все еще существовал. Похоже, что задний стек должен быть похож на A -> B -> C или (это выглядит более возможным) должно быть два обратных стека, как это: (A -> B) и (C).

На данный момент мы попробовали некоторые манипуляции с переопределением startActivity для действия A.

Существуют ли более эффективные способы достижения ситуации, когда C всегда должен быть видимым, пока пользователь не закроет действие?

1 Ответ

0 голосов
/ 11 февраля 2020

Я пришел к ответу. В случае, если вы столкнулись и с этим, решение в моем случае выглядело так:

Идея состоит в том, что я сохраняю состояние в операции A после асинхронной работы, которая необходима для запуска операции B. Если действие C находится на вершине стека, действие B не будет запущено (выполняется с помощью переопределения метода startActivity A). Затем, когда операция C завершена, запускается метод операции onStart. И в этом методе мы запускаем Занятие B. Визуально это выглядит так, как я хотел достичь.

...