【发布时间】:2017-10-24 08:03:24
【问题描述】:
在which methods 的android 组件生命周期中我应该call dagger 2 inject 吗?例如,我有:
- 活动(A),
- 活动嵌套片段(B),
- 片段嵌套片段 (C)。
在 C 中我使用父组件(B 组件),在 B 中我也使用父组件(A 组件)。所以这些组件应该按上述顺序创建。
我目前的解决方案是:
- 在创建时,
- onViewCreated,
- onViewCreated;
但这是不正确的,因为每次从返回堆栈中弹出片段时都会调用 onViewCreated。
当我在打开“不保留活动”模式的片段的 onCreate 中调用注入时,片段嵌套片段 onCreate 方法在活动嵌套片段 onCreate 之前调用,因此它也不起作用。
【问题讨论】:
-
你应该添加一些你如何声明你的 Dagger 模块的代码。
-
也许可以尝试添加一个标志来检查嵌套片段的组件是否已经在您当前的解决方案中初始化?
-
@MuratK。这里有必要吗?
-
@canihazurcode 这是可能的,但我认为有更好的方法来做我想做的事..
-
我认为使用单个组件提供由活动、片段和嵌套片段共享的所有对象将是一个更好的解决方案。该组件可以独立于 A、B 或 C 生命周期进行初始化。
标签: android android-fragments android-activity dagger-2 dagger