如何在活动之间共享Dagger2子组件

pde*_*d59 3 android dependency-injection dagger

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

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

当用户实际登录我的应用程序时,我希望有一个UserComponent,它存在于多个活动中.

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

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

fro*_*mcs 6

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

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

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

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