我有一个带有 3 个屏幕的工作流程。从“屏幕 1”到访问“屏幕 2”,用户必须接受我在图片中称为“模态”的某种条款和条件。但他只需要接受一次这些条件。下次他在第一个屏幕时,他可以直接进入屏幕 2。用户可以选择不接受条款,因此我们返回“屏幕 1”,不要尝试进入“屏幕 2”。
我想知道如何使用新的导航组件来做到这一点。
以前,我会做什么:
- 在屏幕 1 上,检查用户是否必须接受条件
- 如果否,则启动“屏幕 2”活动
- 如果是,则使用
startActivityForResult()
并等待模态的结果。将条款标记为已接受。启动“屏幕 2”
但是有了导航图,就没有办法启动一个Fragment来获取结果。
我可以在“模态”屏幕中将条款标记为已接受,然后从那里启动“屏幕 2”。问题是要访问屏幕 2,我需要进行网络请求。我不想复制对 API 的调用并在“屏幕 1”和“模态”中处理其结果。
有没有办法使用 Jetpack 导航从“模态”返回到“屏幕 1”并提供一些信息(用户接受条款)?
编辑:我目前通过使用 Yahya 在下面建议的相同流程来解决它:仅将 Activity 用于模态并startActivityForResult
从“屏幕 1”使用。我只是想知道我是否可以继续在整个流程中使用导航图。