Как я могу использовать контекст в синглтоне? - PullRequest
2 голосов
/ 20 февраля 2020

мне нужно в моем синглтоне -> контекст. Я знаю, что не могу передать аргумент в конструктор, потому что у объекта нет конструктора.

Затем я вызываю его из класса приложения.

Вот код:

object Singleton {

    var userAgentInfo: String = UserAgentTools.buildUserAgent(context)

    fun initializeSdk() {
        AuthenticatorApiManager.initializeSdk(userAgentInfo)
    }
}

Ответы [ 3 ]

1 голос
/ 20 февраля 2020

Переместите инициализацию userAgentInfo в метод initializeSDK и отправьте Контекст в качестве аргумента, обязательно отправьте ApplicationContext.

object Singleton {

    var userAgentInfo: String? = null

    fun initializeSdk(context: Context) {
        userAgentInfo = UserAgentTools.buildUserAgent(context)
        AuthenticatorApiManager.initializeSdk(userAgentInfo)
    }
}
0 голосов
/ 21 февраля 2020

Вы можете использовать контекст в вашем классе Singleton, используя Application экземпляр класса. здесь это

0 голосов
/ 20 февраля 2020

Создайте класс приложения и напишите ниже код.

companion object {
    private lateinit var sInstance: ApplicationClass
    fun getInstance(): ApplicationClass {
        return sInstance
    }
}

Используйте в объекте, как показано ниже.

ApplicationClass.getInstance()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...