Intereting Posts
Как написать общий метод расширения в Котлине? Spring Data JPA / Hibernate "Невозможно найти атрибут с заданным именем" Почему в этом методе Котлина есть обратные обратные линии? Kotlin и RxJava – Почему мой Single.zip () не компилируется? Как поместить несколько ящиков рядом друг с другом в вертикально прокручиваемом виде в Android Studio? Kotlin 1.1.3-2 Невозможно создать экземпляр фрагмента в OnResume Android Расширение RxJava наблюдаемого в Котлине с надлежащей утилизацией Android – SharedPreferences – Контекст Что такое синтаксис класса <? extends class_name> в kotlin? OnCreateOptionsMenu вызван из абстрактного класса Запуск приложения TornadoFX из существующей программы Kotlin Есть ли разница между «объектом-получателем» и «приемником расширения», Что является предпочтительным решением для Kotlin koan «Partition» и почему? RxJava: Отменить подписку async, наблюдаемую из другого асинхронного производства Kotlin maven plugin порядок компиляции

kodein – введенное значение данных не является значением данных

В моем классе CallType я поместил вложенные данные connectivityState.callBackState в значение true, которое инициализируется как false в моем классе ConnectivitySte . Но в моем классе IncomingCallBroadcastReceiver мои данные callBackState не true а false .

 class CallType { val kodein = Kodein { bind<ConnectivityState>() with provider { ConnectivityState() } } private val connectivityState: ConnectivityState = kodein.instance() fun call(number: String) { //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\ connectivityState.callBackState = true } class IncomingCallBroadcastReceiver : KodeinBroadcastReceiver() { private val connectivityState: ConnectivityState by instance() override fun onBroadcastReceived(context: Context, intent: Intent) { //!!!!!!!!!!!!!! IT'S FALSE HERE WHEREAS I PUT IT TO TRUE IN CALLTYPE CALSS if (connectivityState.callBackState) { } } class ConnectivityState { var iaxState = false } 

Спасибо за ваш ответ

Проблема здесь:

 bind<ConnectivityState>() with provider { ConnectivityState() } 

Вы привязываетесь к области provider , что означает, что новый экземпляр будет возвращен каждый раз, когда вы запрашиваете экземпляр .

Если вы хотите, чтобы один и тот же экземпляр возвращался каждый раз, вам нужно привязать к singleton :

 bind<ConnectivityState>() with singleton { ConnectivityState() }