Как получить ссылку на класс Application () в другом модуле? - PullRequest
1 голос
/ 18 июня 2020

Я работаю над приложением на основе нескольких модулей, модули разделены на основе функций, у меня есть класс приложения в модуле приложения, теперь у меня есть функция, реализованная в классе приложения, которую я хотел бы использовать в классах в других модулях, но я не могу получить к нему доступ.

1 Ответ

0 голосов
/ 18 июня 2020

Один из вариантов - использовать внедрение зависимостей. Используя библиотеку Koin DI , это будет выглядеть так:

class YourApplication : Application() {

    override fun onCreate() {
        super.onCreate()

        // Initialize DI instance from which you will request application context
        startKoin {
            androidContext(this@YourApplication)
        }
}

Позже, чтобы получить Application контекст или просто Context, вы можете использовать KoinContextHandler:

val koin = KoinContextHandler.get()
val application = koin.get<Application>()
val context = koin.get<Context>()

Вам необходимо добавить эти зависимости к вам build.gradle файлам в модуле приложения и еще одному модулю, который вы используете для его работы:

dependencies {
    ...
    def koin_version = '2.1.5'
    implementation "org.koin:koin-core:$koin_version"
    implementation "org.koin:koin-android:$koin_version"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...