У меня есть компонент, поддерживающий жизненный цикл Android, со следующим интерфейсом:
class MyLifecycleAwareComponent @Inject constructor(
private val: DependencyOne,
private val: DependencyTwo
) {
fun bindToLifecycleOwner(lifecycleOwner: LifecycleOwner) {
...
}
...
}
Все специфические компоненты и модули Dagger настроены правильно и до сих пор прекрасно работали.
InКаждый раз, когда мне нужно использовать компонент, я делаю следующее:
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?