169 похожих чатов

Привет, почему так происходит :делаю запрос из бд, который возвращает

мне Flow<Список объектов>, после получения данных, я обновляю стэйт, с помощью state Flow и передаю этот список, в активити я подписан на изменение state Flow и туда и приходит списочек объектов, непонятен слудеющий момент:при входе в приложение у нас делается запрос в бд и мы обновляем стэйт флоу хорошо, но почему, когда я к примеру удаляю объект из бд, опять же обновляется state Flow и туда приходит обновлённый список, это как - то связано с тем, что мы возвращаем Flow и state Flow подписывается на изменение бд? Спасибо

3 ответов

14 просмотров

Ты конечно не дал свой код, но Flow работает до тех пор пока ты от него не отпишешься, скорее всего ты юзаешь какой то рум, а он после обновления базы будет опять тебе слать данные через Flow, как выход могу посоветовать отписаться от базы после получения данных.

kostig-gig Автор вопроса

Я подписываюсь не на сам Flow а на state Flow, которому я отдал список всех объектов при входе в приложение Если бы я сделал так : val objects = repo.allObjects() А в активити подписался бы на этот флоу, то я понимаю, почему нам приходит обновление в это флоу, при каких либо изменениях в бд, но почему когда я делаю так : val objects = repo.allObjects().collect{ _uiState.value = it } Стэйт также начинает обновляться при любых изменениях, ведь его обновление вызывается 1 раз, когда при входе я делаю запрос в бд, однако его обновление вызывается каждый раз при удалении или вставки в бд нового объекта и туда уже приходит обновлённый список объектов

State flow этот тот же flow и от него тоже нужно отписаться, тебе возвращает все данные с бд, потому что ты подписан на них

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта