kodein – 注入的数据值不是数据的值检索

在我的CallType类中,我把注入的数据connectivityState.callBackState为true,在ConnectivitySte类中初始化为false。 但是在我的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() }