gpt4 book ai didi

Android Hilt - 如何在 fragment 之间共享依赖关系?

转载 作者:行者123 更新时间:2023-12-04 17:09:35 24 4
gpt4 key购买 nike

如何使用 Hilt/Dagger 在多个指定 fragment 之间共享依赖关系,但不是所有 fragment ?

我有单 Activity 应用程序。并有 3 个 fragment 创建一个实体。例如创建用户:

... 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 ...

我想从第一个 fragment 开始将数据放入交互器,然后将数据放入第三个 fragment 并运行交互器。我希望当所有这 3 个 fragment 都被销毁时,interactor 将被销毁。

如果我将 Dagger 中的交互器标记为 @Singleton 或 @ActivityScoped - 它会出现重用问题。 Interactor 中的数据将保留之前启动的数据。如果我将其设置为无范围或@FragmentScoped - fragment 将具有 3 个不同的交互器。

最佳答案

作为一种解决方案,您可以将这 3 个 fragment 放入一个具有自己的导航和 DI 图的流 fragment 中。如果您确定 Flow DI 容器的范围(如 @FlowScope),Flow DI 容器将在子 fragment 之间共享 Interactor。当用户完成注册时,Flow Fragment 将从应用导航图中弹出,Interactor 将与 Flow Fragment 及其子 Fragment 一起销毁。

关于Android Hilt - 如何在 fragment 之间共享依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69770659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com