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() }