gpt4 book ai didi

android - 如何使用 koin 依赖库在模块中注入(inject) Activity 上下文

转载 作者:行者123 更新时间:2023-12-05 00:13:53 26 4
gpt4 key购买 nike

我有一个 Util 模块,如下所示,它需要 Activity 上下文 [而不是应用程序上下文] 来执行它的一些功能。

如何将 Activity 上下文注入(inject)其中?

class MainPresenter internal constructor(private val iMainActivity: IActivity)  : IPresenter {

//dependencies
private val context = iMainActivity as AppCompatActivity

private var util = UtilModule(context) //<-- inject this
private var httpClient = HttpClient(context) //<-- inject this

最佳答案

在本例中,为 @commonsware说了,presenter class 依赖于 activity 不好。更好的注入(inject)解决方案可以像下面的结构:

class IActivity{

private val utilModule: UtilModule by lazy { UtilModule(this@IActivity) }
private val httpClient: HttpClient by lazy { HttpClient(this@IActivity) }

private val presenter: MainPresenter by inject{ parametersOf(utilModel,
httpClient) }

}

class MainPresenter(private val util: UtilModule, private val httpClient: HttpClient)

你的模块:

single { MainPresenter( it[0], it[1] ) }

关于android - 如何使用 koin 依赖库在模块中注入(inject) Activity 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56176112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com