Ответ
commit() — асинхронное выполнение транзакции. Добавляет операцию в очередь, которая выполнится на главном потоке.
commitNow() — синхронное выполнение транзакции. Немедленно применяет изменения, но работает только с FragmentManager (не FragmentManagerCompat).
commitAllowingStateLoss() — асинхронный аналог commit(), но разрешает потерю состояния (например, если активити уничтожено). Используется, когда потеря UI-состояния допустима.
Пример:
supportFragmentManager.commit {
replace(R.id.container, MyFragment())
// commit() — асинхронно
// commitNow() — синхронно
// commitAllowingStateLoss() — с риском потери состояния
}
Важно: commitNow() нельзя вызывать после onSaveInstanceState(), а commitAllowingStateLoss() — можно, но с риском.