что дает больше контроля.

дно, Room не может обрабатывать MutableLiveData, и мы должны придерживаться LiveData, поскольку он возвращает следующую ошибку:

error: Not sure how to convert a Cursor to this method's return type

Я создал "пользовательские" MutableLiveData в моем помощнике по БД следующим образом:

class ProfileRepository @Inject internal constructor(private val profileDao: ProfileDao): ProfileRepo{

    override fun insertProfile(profile: Profile){
        profileDao.insertProfile(profile)
    }

    val mutableLiveData by lazy { MutableProfileLiveData() }
    override fun loadMutableProfileLiveData(): MutableLiveData<Profile> = mutableLiveData

    inner class MutableProfileLiveData: MutableLiveData<Profile>(){

        override fun postValue(value: Profile?) {
            value?.let { insertProfile(it) }
            super.postValue(value)
        }

        override fun setValue(value: Profile?) {
            value?.let { insertProfile(it) }
            super.setValue(value)
        }

        override fun getValue(): Profile? {
            return profileDao.loadProfileLiveData().getValue()
        }
    }
}

Таким образом, я получаю обновления из БД и могу сохранитьProfile объект, но я не могу изменить атрибуты.

Например:mutableLiveData.value = Profile() должно сработать.mutableLiveData.value.userName = "name" назвал быgetValue() вместоpostValue() и не будет работать.

Кто-нибудь нашел решение для этого?

Ответы на вопрос(2)

Ваш ответ на вопрос