【发布时间】:2016-11-13 08:55:08
【问题描述】:
如果用户没有数据,我将显示一个空片段。在那个 emptyFragment(onViewCreated)中,我检查了一个条件,有时想用另一个替换那个空 Fragment,所以我在相应的活动上调用一个方法来替换这个 Fragment。
一些用户(目前只有三星,6.0.1 但我不知道这是否意味着什么)在我executePendingTransactions 的线路上遇到崩溃:
IllegalStateException:
Fatal Exception: java.lang.RuntimeException
Unable to resume activity
{....app.activities.MyActivity_}:
java.lang.IllegalStateException: FragmentManager is already executing transactions
这是 6.0.1 中的错误还是 onViewCreated 执行此操作的位置错误?
编辑
这是一个可能的解决方案吗?
if (addToBackStack) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, contentFragment, name).addToBackStack(name).commitAllowingStateLoss();
getSupportFragmentManager().executePendingTransactions();
} else {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, contentFragment, name).commitNow();
}
【问题讨论】:
-
当在 Fragment.onResume() 中同步 replaceFragment() 时,我遇到了相同的异常“FragmentManager 已在执行事务”。是浮动异常。
标签: android android-fragments illegalstateexception fragmentmanager