使用commitNowAllowingStateLoss()时如何发生状态丢失?

时间:2016-09-13 11:58:53

标签: android android-fragments

commitNow()的{​​{3}}明确指出这些是同步电话。

我认为调用FragmentTransaction时可能会发生状态丢失commit(),但事务未完成且Activity被重新创建(我猜这是可能的,因为{{ 1}}是异步调用。)

我不知道commit()会如何发生这种情况,因此我不明白commitNow()的目的是什么。

我想我在某个地方出错了,有人可以对这件事情有所了解吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

onActivityResult()onResume()之前调用

onPostResume(),这意味着您在onPause()之后,因此onSaveInstanceState()。在这种情况下,你会得到IllegalStateException: cannot execute this action after onSaveInstanceState()

因此,如果commitNow()中的onActivityResult(),您就会崩溃。

或者至少,这就是我认为在这里发生的事情。我需要尝试验证声明。