Правильный способ реализации LiveData - PullRequest
0 голосов
/ 20 мая 2019

В документации для Android он показывает пример создания объекта LiveData следующим образом:

val currentName: MutableLiveData<String> by lazy {
        MutableLiveData<String>()
}

Но я видел код в другом месте, который показывает это так:

val currentName: MutableLiveData<String> = MutableLiveData()

Оба изони расположены в viewmodel.Во втором примере модель LiveData создается при создании класса, тогда как в первом примере она создается только при первом использовании объекта.

Допустимы ли оба этих случая?

1 Ответ

1 голос
/ 21 мая 2019

Да, оба эти случая действительны.Тем не менее, есть четкая разница между ними.При использовании by lazy он все равно будет устанавливать объект LiveData, но он не будет устанавливать его, пока переменная не будет впервые использована.В случае второго варианта он будет инициализировать объект LiveData при создании родителя.

...