commitAllowingStateLoss和commit
时间: 2023-11-09 09:00:39 浏览: 61
FragmentTransactionTester:实现替换和显示隐藏片段事务模式
commitAllowingStateLoss和commit是FragmentTransaction类中的两个方法,用于提交Fragment的变化。
commit方法是同步的,即当调用commit方法时,会立即执行Fragment事务的提交操作。它会将Fragment的变化添加到FragmentManager的操作队列中,并在主线程中执行。
而commitAllowingStateLoss方法是异步的,在执行commitAllowingStateLoss方法时,不会立即提交Fragment的变化,而是将变化添加到FragmentManager的操作队列中,但它允许在Activity的状态已经保存(例如在Activity被暂停或停止时)时调用。这意味着,如果在Activity状态保存前调用了commitAllowingStateLoss方法,那么即使Activity状态已经保存,Fragment的变化仍然会被提交。
需要注意的是,在可以避免出现异常情况下,应尽量使用commit方法而不是commitAllowingStateLoss方法,以保证Fragment事务的安全性和一致性。
阅读全文