我想知道如何在活动之间共享子组件?
假设我有一个与Application一起使用的全局AppComponent。
当用户实际登录我的应用程序时,我想拥有一个存在于多个活动中的UserComponent。
当用户登录时,我的应用会创建一个其他活动必须从某个地方检索的UserComponent,但我不知道什么是最好的“某处”。
我应该将UserComponent存储在Application中并创建一个getter和一个重置组件的方法吗? 我应该将此组件放在ApplicationModule内的“holder”对象中以及每个子活动中,通过从ApplicationComponent获取“holder”来检索我的组件吗? 我应该将它存储在静态字段中吗? 我应该做点什么吗?
答案 0 :(得分:6)
因为您负责子组件生命周期,所以我会将其存储在Application对象中,并使用其他getter和setter。只有一直存在的地方,可以存储全球物品。
包装?是的,如果您希望生命周期更复杂,但它仍将存储在应用程序中。
你必须记住的是,Application对象也可以被杀死,所以你应该能够恢复你的UserComponent。
这里有一个简单的源代码案例,展示了UserComponent的工作原理:http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/