Size: a a a

Cicerone Chat (RUS)

2021 July 12

A

Artyom in Cicerone Chat (RUS)
получается, что очередь в лупере большая и наш runnable отрабатывает слишком поздно
источник

A

Artyom in Cicerone Chat (RUS)
есть вариант попробовать postAtFrontOfQueue, но пока не проверял
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
да, а ином случае наоборот падает, что мы навигацию уже дергаем, а там в лупере еще инициализация фрагмента не закончилась
источник

A

Artyom in Cicerone Chat (RUS)
разве это не проблема логики приложения, что команды летят слишком часто?
источник

А

Александр in Cicerone Chat (RUS)
Что значит слишком быстро?
источник

A

Artyom in Cicerone Chat (RUS)
Команды навигации отправляются настолько часто, что fragment manager не успевает отрабатывать транзакции
источник

А

Александр in Cicerone Chat (RUS)
Конкретный кейс - навигация из attachView() или из onFirstViewAttach() если говорить в контексте Moxy
источник

А

Александр in Cicerone Chat (RUS)
Например, мы сразу проверяем какое-то условие и пропускаем шаг (переходим на следующий экран)
источник

A

Artyom in Cicerone Chat (RUS)
Я не про это

Если утрировать, то навигация из forEach цикла
источник

DB

Dmitro Boiko in Cicerone Chat (RUS)
какое-то странное поведение вообще
источник

DB

Dmitro Boiko in Cicerone Chat (RUS)
почему сразу не сэтать нужный фрагмент в first attach?
источник

IG

Ilya Gulya in Cicerone Chat (RUS)
Достаточно открыть экран и в onCreateView следующего экрана открыть ещё экран. Не такой уж редкий кейс.
источник

A

Artyom in Cicerone Chat (RUS)
В таком случае все будет ок, потому что attachView/firstViewAttach вызываются после onResume или от onStart, точно не помню
источник

IG

Ilya Gulya in Cicerone Chat (RUS)
Это внутри транзакции fragment manager происходит. Не будет ок.
источник

A

Artyom in Cicerone Chat (RUS)
Ну и такие штуки я лично разруливаю в координаторе и лишнего перехода не будет
источник

A

Artyom in Cicerone Chat (RUS)
Навигация внутри транзакции?
источник

A

Artyom in Cicerone Chat (RUS)
Для меня редкий. Никогда так не проектировал
источник

DB

Dmitro Boiko in Cicerone Chat (RUS)
а если сделать commitAllowingStateLoss?
источник

A

Artyom in Cicerone Chat (RUS)
Для себя решил тем, что оверрайднул без применения Handler в AppNavigator
источник

A

Artyom in Cicerone Chat (RUS)
У меня не было случаев, когда производилось несколько одновременных транзакций в fragment manager 🤷‍♂
источник