在某些情况下,不需要我的广播接收器,因此我需要检查接收器是否为null,但是即使我不使用它也会导致崩溃,但不知何故此对象也不为null。预先感谢。
private val myBroadCastReceiver by lazy {
MyBroadcastReceiver()
}
if (myBroadCastReceiver != null) {
unregisterReceiver(myBroadCastReceiver)
}
答案 0 :(得分:3)
当您尝试空检查时,它会初始化,因此不会为空。试试这个而不是懒。
private val myBroadCastReceiver : MyBroadcastReceiver? = null
答案 1 :(得分:2)
因为您将myBroadcastReceiver
声明为Lazy,这意味着您必须先调用MyBroadcastReceiver()
才能使用它。您在if
语句中所做的操作。
因此,如果您以这种方式进行检查,它将不会为null,因为您实际上是在MyBroadcastReceiver()
处执行if(myBroadCastReceiver...)