Android 如何从另一个类而不是应用程序类启动koin
我正在创建一个应用程序作为库。必须在其中集成库的主应用程序具有应用程序类,因此我无法在我的库应用程序中添加应用程序类。我发现koin必须从应用程序类开始。我可以从另一个类调用startKoin吗?您可以创建自己的Android 如何从另一个类而不是应用程序类启动koin,android,koin,Android,Koin,我正在创建一个应用程序作为库。必须在其中集成库的主应用程序具有应用程序类,因此我无法在我的库应用程序中添加应用程序类。我发现koin必须从应用程序类开始。我可以从另一个类调用startKoin吗?您可以创建自己的koin应用程序,该应用程序不共享全局koin上下文。您也不需要在应用程序类中初始化它。然后可以在您自己的KoinComponent实现中使用此实例 您可以在此处找到详细说明: 如果您的目的是向应用程序注入库依赖项,则可以让库公开一组模块,这些模块可以从应用程序中引用,并在启动Koin时
koin应用程序,该应用程序不共享全局koin上下文。您也不需要在应用程序
类中初始化它。然后可以在您自己的KoinComponent
实现中使用此实例
您可以在此处找到详细说明:
如果您的目的是向应用程序注入库依赖项,则可以让库公开一组模块,这些模块可以从应用程序中引用,并在启动Koin时进行初始化
例如:
在library中,有一个公共模块作为libraryModule:
val libraryModule = module{
single{
ObjectA()
}
}
现在,当您在应用程序模块中包含库时,您可以将其用作:
class MyApplication : Application{
override fun onCreate() {
super.onCreate()
initializeKoinDI()
}
private fun initializeKoinDI() {
startKoin {
androidContext(this@MyApplication)
modules(listOf(appModule1, appModule2, libraryModule))
}
}
}