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