Код: Выделить всё
public class MyDataViewModel extends ViewModel {
MutableLiveData mData = new MutableLiveData();
public ContactsViewModel() {}
public void setData(List data) {
mData.postValue(data);
}
public LiveData getData() {
return mData;
}
}
Другой вопрос — синхронизация данных. Нужно ли мне помнить о синхронизации LiveData (как и всех других обычных данных) или LiveData обрабатывает ее самостоятельно? Например, могут ли setData() и getData().getValue() вызываться одновременно?
Последняя проблема, похоже, наблюдатели LiveData будут срабатывать каждый раз, когда вы устанавливаете значение, даже если оно одно и то же (например, если вы используете setData() в onLoadFinished() загрузчика, setData() будет вызываться каждый раз, когда активность воссоздается). Это приведет к тому, что наблюдатель будет вызван дважды с одними и теми же данными. Интересно, какой лучший способ предотвратить это? Проверьте, похожи ли данные во ViewModel на те, что у нас есть, и не задавайте значение повторно?
Подробнее здесь: https://stackoverflow.com/questions/454 ... -viewmodel
Мобильная версия