Синхронный ли метод FragmentTransaction.commit()?
Нет, данный метод асинхронный. Вызов commit() не произведет транзакцию сразу после вызова. Вместо этого, он добавит транзакцию в очередь главного потока, ждать своего выполнения, и исполнит транзакцию как только подойдет ее очередь. Если необходимо исполнить транзакцию сразу, то можно использовать метод commitNow() и тогда транзакция выполнится на главном потоке сразу.
Стоит учитывать, что commitNow() не совместим с addToBackStack(). В качестве альтернативы, вы можете вызвать метод executePendingTransactions() сразу после вызовы commit(). Данный способ совместим с addToBackStack().
Но в реальной разработке редко встает необходимость запустить транзакцию синхронно, так что метода commit() вполне достаточно
Портфолио из реальных проектов
Обучающая платформа AndroidSprint
Создавайте проекты с первых недель. Telegram-бот, Android-приложение, Backend API — всё на GitHub с тестами и CI/CD
- Проекты на GitHub: каждый трек даёт 3–5 работ для портфолио — показываете на собесах
- Код-ревью менторов: учитесь писать чисто и правильно — код не стыдно показать
- Production-качество: тесты, CI/CD, документация — как в продуктовых командах