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() } 
Intereting Posts
Разумные ситуации для использования `Let` Котлина Как добавить класс kotlin в градиентную задачу JavaCompile JaVers обнаруживает изменения в childs, если изменяется свойство simple в корневом объекте Java Math как классы в Котлине Kotlin: переопределение общего свойства внутри подтипа Как отфильтровать список на месте с Kotlin? Spring Boot – не может включать статический ресурс Номер Android: синхронные запросы возвращают null Почему добавление представления в мой макет меняет ширину всего макета? Как объединить 2 отдельных потока, буферизовать заполненные данные из них и subsrcibe к нему после некоторого времени Объявление об отказе от рекламы Kotlin REPL не работает с Pair Kotlin Cast String как String.Companion В Kotlin, как я могу обойти конфликты наследуемых объявлений, когда класс enum реализует интерфейс? Kotlin 1.0.0-rc-1036 проблемы с обработкой аннотации Переопределить свойство интерфейса с параметром конструктора с другим именем