Android Hilt - 如何在Fragment之间共享依赖?

3
如何使用Hilt/Dagger在多个指定的片段之间共享依赖项,而不是所有片段?
我有一个单activity应用程序,并且有3个片段,每个片段都创建一个实体。例如,创建用户:
... go to create user ...
1st fragment: enter phone -> put phone in interactor
2nd fragment: pick avatar -> put avatar in interactor
3rd fragment: enter name  -> put name in interactor + run
... success ...

我希望从第1个片段开始向中间者输入数据,并完成从第3个片段中PUT数据并运行该中间者。并且我期望当这3个片段都被销毁时,中间者也将被销毁。

如果我在Dagger中标记中间者为@Singleton或@ActivityScoped-它将会有重用的问题。 中间者中的数据将从上一次启动时保留下来。 如果我将它设置成未定义范围或@FragmentScoped-片段将具有3个不同的互动器。

1个回答

1
作为一种解决方案,您可以将这3个片段放在一个具有自己导航和DI图的Flow Fragment中。如果您对其进行作用域(例如@FlowScope),则Flow DI容器将在子片段之间共享Interactor。当用户完成注册时,Flow Fragment将从应用程序导航图中弹出,并且Interactor将随着Flow Fragment及其子片段一起被销毁,但HTML标签将被保留。

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