And*_*Dev 5 kotlin android-livedata
在 Android 文档中,它显示了创建 LiveData 对象的示例,如下所示:
val currentName: MutableLiveData<String> by lazy {
MutableLiveData<String>()
}
Run Code Online (Sandbox Code Playgroud)
但我在其他地方看到过这样的代码:
val currentName: MutableLiveData<String> = MutableLiveData()
Run Code Online (Sandbox Code Playgroud)
这两个都位于视图模型中。在第二个示例中,LiveData 模型在创建类时实例化,而在第一个示例中,仅在首次使用对象时实例化。
这两种情况都有效吗?
小智 5
是的,这两种情况都是有效的。然而,两者之间有明显的区别。使用时by lazy
它仍然会设置 LiveData 对象,但直到第一次使用该变量时才会设置它。对于第二个选项,它将在创建父对象时初始化 LiveData 对象。
归档时间: |
|
查看次数: |
3317 次 |
最近记录: |