如何在活动

时间:2015-08-23 22:30:23

标签: android dependency-injection dagger

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

假设我有一个与Application一起使用的全局AppComponent。

当用户实际登录我的应用程序时,我想拥有一个存在于多个活动中的UserComponent。

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

我应该将UserComponent存储在Application中并创建一个getter和一个重置组件的方法吗? 我应该将此组件放在ApplicationModule内的“holder”对象中以​​及每个子活动中,通过从ApplicationComponent获取“holder”来检索我的组件吗? 我应该将它存储在静态字段中吗? 我应该做点什么吗?

1 个答案:

答案 0 :(得分:6)

因为您负责子组件生命周期,所以我会将其存储在Application对象中,并使用其他getter和setter。只有一直存在的地方,可以存储全球物品。

包装?是的,如果您希望生命周期更复杂,但它仍将存储在应用程序中。

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

这里有一个简单的源代码案例,展示了UserComponent的工作原理:http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/