【问题标题】:How to share Dagger2 Subcomponent between activities如何在活动之间共享 Dagger2 子组件
【发布时间】:2015-08-23 22:30:22
【问题描述】:

我想知道如何在活动之间共享子组件?

假设我有一个与应用程序一起使用的全局 AppComponent。

当用户实际登录我的应用程序时,我希望有一个跨多个活动的 UserComponent。

当用户登录时,我的应用会创建一个用户组件,其他活动必须从某处检索该组件,但我不知道什么是最好的“某处”。

我应该将 UserComponent 存储在应用程序中并创建一个 getter 和一个重置组件的方法吗? 我是否应该将此组件放置在 ApplicationModule 内的“持有人”对象中,并且在每个子活动中,通过从 ApplicationComponent 获取“持有人”来检索我的组件? 我应该将它存储在静态字段中吗? 我应该做点别的吗?

【问题讨论】:

    标签: android dependency-injection dagger


    【解决方案1】:

    因为您负责子组件的生命周期,所以我会将其存储在 Application 对象中,并带有额外的 getter 和 setter。只有一个地方永远存在并且可以存储全局对象。

    包装?是的,如果你想要更复杂的生命周期,但它仍然会存储在应用程序中。

    您必须记住的是,Application 对象也可以被杀死,因此您应该能够恢复您的 UserComponent。

    这里有我的简单案例,其中包含显示 UserComponent 如何工作的源代码:http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/

    【讨论】:

    • 感谢您的意见。经过一些实践,我发现最好的地方确实是把子组件实例放在Application中。顺便说一句,很棒的文章!
    猜你喜欢
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 2011-08-20
    • 2016-02-14
    • 1970-01-01
    • 2012-07-29
    • 2017-10-25
    相关资源
    最近更新 更多