Синхронный ли метод FragmentTransaction.commit()?
Нет, данный метод асинхронный. Вызов commit() не произведет транзакцию сразу после вызова. Вместо этого, он добавит транзакцию в очередь главного потока, ждать своего выполнения, и исполнит транзакцию как только подойдет ее очередь. Если необходимо исполнить транзакцию сразу, то можно использовать метод commitNow() и тогда транзакция выполнится на главном потоке сразу.
Стоит учитывать, что commitNow() не совместим с addToBackStack(). В качестве альтернативы, вы можете вызвать метод executePendingTransactions() сразу после вызовы commit(). Данный способ совместим с addToBackStack().
Но в реальной разработке редко встает необходимость запустить транзакцию синхронно, так что метода commit() вполне достаточно
AI-ментор знает весь ваш код
AI Sprints — обучение профессиям с ИИ
AI-ментор помнит каждую вашу задачу и весь прогресс. Даёт подсказки в контексте урока, а не общие ответы из интернета
- Контекст 24/7: ИИ видит весь ваш путь обучения и код — помогает именно с вашей задачей
- Учит думать: подсказки, а не готовые решения — развиваете навык решения проблем
- Треки: Android, Backend, QA — от нуля до Junior за 10 месяцев
AI Challenge — собери чат-бота за 5 дней
Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.
- Практика с первого дня, без теории «в стол»
- Готовый проект в портфолио к концу недели
- Старт в любой день — учитесь в своём темпе