android - 总是创建延迟初始化的对象

标签 android kotlin

在某些情况下,我的广播接收器不是必需的,因此需要检查接收器是否为空,但不知何故,即使不使用它并导致崩溃,这个对象也不为空。

private val myBroadCastReceiver by lazy {
   MyBroadcastReceiver()
}
if(myBroadCastReceiver != null) unregisterReceiver(myBroadCastReceiver)

最佳答案

当您尝试进行 null 检查时,它已初始化,因此它不是 null。试试这个而不是懒惰。

private var myBroadCastReceiver : MyBroadcastReceiver? = null

或者试试这个答案 Kotlin: Check if lazy val has been initialised

关于android - 总是创建延迟初始化的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54811983/

相关文章:

kotlin - ExecutorService在redisson中处于关闭状态

java - 无法为 intellij 解析符号 @integer/google_play_services_version

android - 是否可以使用 AWS AppSync 构建离线优先的移动应用程序?

android - 在 FusedLocation 中接收模拟位置

java - 导入 android 包类时出错

kotlin - 对 Kotlin 中的 Null 安全性感到困惑

android - 获取 Assets 文件夹中存在的 pdf 缩略图会导致文件未找到异常

lambda - 如何将 lambda 表达式放在 mapTo 调用合法语法的参数之后?

android - notifyItemInserted 贵吗

android - 如何在 Kotlin 中滑动 fragment 时选择 BottomNavigationView 中的项目