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

jog*_*ghm 5 android android-intent onactivityresult android-architecture-navigation

我正在使用
navController.navigate(R.id.FragmentB) 从 MainActivity 中的主机片段导航到不同的片段,它按预期工作,除了在 onActivityResult 内它不会响应,我正在从其他活动返回一个 ID 并想要根据该 ID 导航到 Fragments 但它没有响应,

jog*_*ghm 2

事实证明,我需要创建一个协程并在其上运行我的导航功能,我尝试过:

  GlobalScope.launch(Dispatchers.Main) {
    navigate()
    }
Run Code Online (Sandbox Code Playgroud)

它工作正常,显然需要优化我的协程,但这是主要问题

  • 听起来在内部它是一个“handler.post”。 (4认同)
  • 通过调用将在主调度程序中运行的协程,它在内部调用“Handler.post”,这意味着 onActivityResult -> onStart -> onResume 在代码之前运行。如果您直接在 onActivityResult 中执行此操作,则 onStart 尚未运行,NavController 会表示其状态已恢复,并且会忽略您的导航调用。 (2认同)