忽略navigate()调用:FragmentManager已经保存了它的状态

Fra*_*cis 7 android fragmentmanager android-architecture-components android-jetpack android-architecture-navigation

我使用的是导航MainActivity,然后我开始SecondActivity(对结果).完成后SecondActivity我想继续导航MainActivity,但FragmentManager已经保存了他的状态.

Navigation.findNavController(view).navigate(R.id.action_next, bundle)我收到的日志消息:

Ignoring navigate() call: FragmentManager has already saved its state
Run Code Online (Sandbox Code Playgroud)

我如何继续导航?

ian*_*ake 8

您必须始终调用super.onActivityResult()Activity 的onActivityResult. 那就是:

  1. 解锁碎片以便他们可以进行碎片交易(即避免state is already saved错误)

  2. onActivityResult回调分派到调用startActivityForResult.


Fra*_*cis 7

super.onPostResume()最后,我通过在导航恢复状态之前进行简单的调用来解决该问题。

  • 导航到恢复状态是什么意思,您能否澄清一下,因为我也有类似的问题,但不确定在哪里需要调用这个 super.onPostResume() ? (3认同)