Я использую Room
и RxJava2
в приложении для Android. У меня есть сценарий, в котором я хочу, чтобы одна и та же функция запускала synchronously
в какой-то момент и запускала asynchronously
в другом месте. Ниже приведена функция:
@Query("SELECT * from saved_survey WHERE enumeratorId = :enumeratorId and isDeleted=:isDeleted ORDER BY savedSurveyTime DESC")
fun getSavedSurveyList(enumeratorId: String, isDeleted: Boolean): Flowable<List<SavedSurvey>>
Я хочу запускать эту функцию синхронно при вызове из IntentService
и запускаться асинхронно при вызове из потока пользовательского интерфейса. Я называю эту функцию как:
savedSurveyViewModel.getSavedSurveyList(enumeratorId, false)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe()
Я не хочу делать несколько функций в repository
или viewmodel
. Любой эффективный подход будет оценен.
Спасибо