Можно ли использовать SingleLiveEvent с Room в Android?

Я возился с SingleLiveEvent, Можно ли использовать его с базой данных комнат? Я попытался использовать его и получил сообщение об ошибке сборки Not sure how to convert a Cursor to this method's return type, Есть ли обходные пути здесь? У меня есть крайний случай, где я хотел бы использовать его!

1 ответ

SingleLiveEvent является MutableLiveData который LiveData, Вы можете вернуться List<LiveData<YourData>> из комнаты с запросом выбора, который вызывается в рабочем потоке. Нет необходимости работать с курсорами в комнате. получить List<LiveData<YourData>> и на соблюдайте метод отправки List<YourData> в обязательный класс или RecyclerView, Каков ваш крайний случай необходимости курсора?

Предостережение. Настоятельно не рекомендуется работать с API-интерфейсом Cursor, поскольку он не гарантирует, существуют ли строки или какие значения содержат строки. Используйте эту функцию, только если у вас уже есть код, который ожидает курсор и который вы не можете легко изменить.

Тем не менее, вы можете получить это с

@Dao
public interface MyDao {
    @Query("SELECT * FROM user WHERE age > :minAge LIMIT 5")
    public Cursor loadRawUsersOlderThan(int minAge);
}

Источник

Другие вопросы по тегам