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    
}

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

1 ответ

Решение

Проблема заключается здесь:

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

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

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

bind<ConnectivityState>() with singleton { ConnectivityState() }
Другие вопросы по тегам