terrakok / Cicerone

🚦 Cicerone is a lightweight library that makes the navigation in an Android app easy.
Other
2.58k stars 218 forks source link

Add navigation transactions in message queue #151

Closed VitalyPeryatin closed 3 years ago

VitalyPeryatin commented 3 years ago

Бывают кейсы, когда нужно выполнить навигацию вне Main потока (например, когда нужно открыть LoginActivity при определенном ответе из Interceptor). В таком случае было бы удобно, если бы все команды переключались бы на Main поток внутриCicerone (с фрагментами можно работать только из Main потока). На сколько это актуально было бы внести в либу? Вприцнипе реализуется 10-ю строчками кода + ошибка FragmentManager is already executing transactions больше возникать не будет. При выполнении многих ранзакций почти одновременно эта ошибка все равно будет возникать без добавления сообщений в очередь сообщений

От Константина (https://t.me/Cicerone_RUS/11631): "про многопоточку: это ответственность разработчика следить за синхронизацией и вызывать команды на роутере синхронно. но выполнять команды на фрагментменеджере не напрямую, а через отправку сообщений - норм идея"