如何在 Java 中获取 Koin 的 Android 上下文
How to get Android Context for Koin in Java
我想在 Java 中获取 Koin 的 AndroidContext。
在 Kotlin 中,我会在 startKoin 块中调用 androidContext()
https://insert-koin.io/docs/reference/koin-android/dsl/
但是在Java我是这样开始Koin的
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
KoinApplication koin = KoinAndroidApplication
.create(this)
.modules(KoinInjectorKt.getKoinInjector());
startKoin(koin);
}
}
我 KoinAndroidApplication
中没有 androidContext() 函数
根据 KDoc
KoinAndroidApplication.create(..)
Create Koin Application with Android context - For Java compat
它已经在后台使用 androidContext
(当您调用 KoinAndroidApplication.create(this)
时),如果您打开 KoinAndroidApplication
的源代码,您将看到:
object KoinAndroidApplication {
/**
* Create Koin Application with Android context - For Java compat
*/
@JvmStatic
@JvmOverloads
fun create(context: Context, androidLoggerLevel: Level = Level.INFO): KoinApplication {
return KoinApplication.init().androidContext(context).androidLogger(androidLoggerLevel)
}
}
我想在 Java 中获取 Koin 的 AndroidContext。 在 Kotlin 中,我会在 startKoin 块中调用 androidContext() https://insert-koin.io/docs/reference/koin-android/dsl/
但是在Java我是这样开始Koin的
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
KoinApplication koin = KoinAndroidApplication
.create(this)
.modules(KoinInjectorKt.getKoinInjector());
startKoin(koin);
}
}
我 KoinAndroidApplication
根据 KDoc
KoinAndroidApplication.create(..)
Create Koin Application with Android context - For Java compat
它已经在后台使用 androidContext
(当您调用 KoinAndroidApplication.create(this)
时),如果您打开 KoinAndroidApplication
的源代码,您将看到:
object KoinAndroidApplication {
/**
* Create Koin Application with Android context - For Java compat
*/
@JvmStatic
@JvmOverloads
fun create(context: Context, androidLoggerLevel: Level = Level.INFO): KoinApplication {
return KoinApplication.init().androidContext(context).androidLogger(androidLoggerLevel)
}
}