我恰好有一个与 Android 生命周期相关的组件,具有以下接口:
所有Dagger特定的组件和模块都已正确配置,并且目前运行良好。
在每个活动中,当我需要使用该组件时,我会按照以下步骤进行操作:
class MyLifecycleAwareComponent @Inject constructor(
private val: DependencyOne,
private val: DependencyTwo
) {
fun bindToLifecycleOwner(lifecycleOwner: LifecycleOwner) {
...
}
...
}
所有Dagger特定的组件和模块都已正确配置,并且目前运行良好。
在每个活动中,当我需要使用该组件时,我会按照以下步骤进行操作:
class MyActivity: AppCompatActivity() {
@Inject
lateinit var component: MyLifecycleAwareComponent
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
component.bindToLifecycleOwner(this)
...
}
}
现在我想摆脱bindLifecycleOwner
,并将我的组件表示为:
class MyLifecycleAwareComponent @Inject constructor(
private val: DependencyOne,
private val: DependencyTwo,
private val: LifecycleOwner
) {
...
}
在各个活动的范围内提供lifecycleOwner
(通过扩展AppCompatActivity
实现接口)。
是否有使用Dagger的方法来完成这个任务?