Room Flow – Как обрабатывать обновления запроса динамических параметров?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Room Flow – Как обрабатывать обновления запроса динамических параметров?

Сообщение Anonymous »

Для базы данных комнаты и запроса с параметром на основе DateTime:

Код: Выделить всё

@Transaction
@Query("SELECT * FROM itemModel WHERE datetime(datetime(`end`), 'localtime') >  datetime(:minDate, 'localtime') ORDER BY `end` ASC")
fun getFlow(
minDate: LocalDateTime,
): Flow[*]>
=> На основании параметра minDate данные, возвращаемые из запроса, должны меняться со временем (даже если в базе данных данные не изменяются)
Как обрабатывать потоковые обновления? Потому что:
  • на стороне базы данных ничего не меняется (поэтому поток никогда не будет получать уведомления об изменениях)
  • только дата в запрос (должен) измениться, но после загрузки потока кажется, что SQL-запрос сохраняет свои параметры, как если бы он был впервые вызван.
Я инициализирую свой вот так :

Код: Выделить всё

var items: StateFlow
fun initItemsFlow(context: Context) {
items = getAllRecords(context).stateIn(
scope = coroutineScope,
started = SharingStarted.WhileSubscribed(5_000),
initialValue = emptyList(),
)
}
Должен ли я снова вручную вызвать initItemsFlow, когда мне нужно (= перенастроить весь поток с нуля) или есть лучший механизм потока/комнаты, чтобы справиться с этим?
Должен ли я снова вручную вызывать initItemsFlow, когда мне нужно (= переустановить весь поток с нуля) или есть лучший механизм потока/комнаты, чтобы справиться с этим? p>
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/787 ... am-request
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»