导航组件在onActivityResult内部导航不起作用

5

我正在使用
navController.navigate(R.id.FragmentB) 从MainActivity中的宿主片段导航到不同的片段,它像预期的那样工作,除了在onActivityResult中无法响应,我从其他活动返回一个ID并希望根据该ID导航到相应的Fragments,但它没有响应,

2个回答

4
如果你没有使用协程,一个简单的 Handler() 就可以实现。
Handler().post {
    navigate()
}

2
原来我需要创建一个协程并在其中运行我的导航函数,我尝试了以下代码:
  GlobalScope.launch(Dispatchers.Main) {
    navigate()
    }

它工作得很好,显然需要优化我的协程,但那是主要问题。


4
тљгУхиТЮЦтюетєЁжЃеТў»СИђСИфhandler.postсђѓ - EpicPandaForce
你能解释得更详细一些吗? - joghm
2
通过调用在主调度程序中运行的协程,内部调用了Handler.post,这意味着onActivityResult -> onStart -> onResume会在您的代码之前运行。如果您直接在onActivityResult中执行它,则onStart尚未运行,NavController会说其状态已恢复,并忽略您的导航调用。 - EpicPandaForce

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接