инструмент юзать собрался?
Задача: сохранить в бд запись вернуть id записи. Использую room для общения с бд. Обращение к бд я должен запустить не в главном потоке чтобы не повесить гуй. Думал что просто сделаю функцию которая вернет Observable<Long> и запустит сохранение записи в фоне. Но я не нашел способа как это сделать. Пока выходит так что если не будет подписки к Observable не будет и записи в бд. Возможно можно решить эту задачу используя Subject но я не уверен что это правильно. Как решать такую задачу? В tutorial решено с помощью LiveData, но говорят что это не модно, модно только rx.
Модно - это про корутины
Rx вообще основан на том, что вы отложенно вызываете выполнение операции) subscribe() запускает цепочку. правильное решение на котлине без учета репозитория Single.fromCallable { dao.save() }.sibscribeOn(scheduler).subscribe{ id -> do smth} и всё прекрасно работает. сабскрайб тригерит цепочку и она выполняется в отдельном потоке.
Обсуждают сегодня