Junior — Middle
Como garantir a preservação do objeto associado ao componente ativo no Koin?
sobes.tech IA
Resposta da IA
No Koin, para guardar um objeto associado a um componente ativo (por exemplo, uma Activity ou Fragment), utiliza-se um escopo (scope) ligado ao ciclo de vida desse componente.
Para garantir a preservação do objeto durante a vida do componente, deve-se:
- Criar um scope ligado ao componente.
- Definir as dependências dentro desse scope.
- Utilizar o scope para obter instâncias que viverão tanto quanto o componente.
Exemplo para Activity:
val activityModule = module {
scope<Activity> {
scoped { MyScopedDependency() }
}
}
// Na Activity
class MyActivity : AppCompatActivity() {
private val myDependency: MyScopedDependency by currentScope.inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
}
Dessa forma, o objeto MyScopedDependency será criado e mantido dentro do ciclo de vida de MyActivity e destruído junto com ela.