【发布时间】:2019-01-24 11:42:27
【问题描述】:
我在MainActivity 中使用navigation,然后我开始SecondActivity(用于结果)。 SecondActivity 完成后,我想继续在 MainActivity 中导航,但 FragmentManager 已经保存了他的状态。
在Navigation.findNavController(view).navigate(R.id.action_next, bundle)我收到日志消息:
Ignoring navigate() call: FragmentManager has already saved its state
如何继续导航?
【问题讨论】:
-
你从哪里调用导航方法?
-
@Chris 我从第一个
Activity的Fragment调用navigate,当onActivityResult在父Activity中调用时。 -
你试过直接调用Fragment中的startActivityForResult并覆盖onActivityResult吗?
-
@Chris 是的,我试过了,但是在处理第二个活动期间重新启动第一个活动(方向更改)时出现问题(在重新启动的活动片段上不调用结果)
-
你是如何触发片段中的导航调用的?如果您在 Activity 中使用结果,您是否可以直接从那里导航 - 例如通过使用类似 Navigation.findNavController(this.findViewById(R.id.nav_host)) - 其中 nav_host 是您的 NavHostFragment
标签: android android-architecture-components fragmentmanager android-jetpack android-architecture-navigation