Kotlin Flow не обновляется в реальном времениAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Kotlin Flow не обновляется в реальном времени

Сообщение Anonymous »


У меня есть поток внутри интерфейса, и я пытаюсь собрать значения в ViewModel, но операция сбора не запускается. Может ли кто-нибудь помочь мне понять, что я делаю неправильно?

Я делаю инъекции, используя рукоять кинжала

@Module @InstallIn(SingletonComponent::класс) объект RealtimeListenerModule { @Обеспечивает забавная привязкаFunction() : RealtimeListener{ вернуть RealtimeListenerImpl() } } интерфейс RealtimeListener { пользователь val: Flow } class RealtimeListenerImpl : RealtimeListener { частный val _userData = MutableStateFlow(null) переопределить пользователя val: Flow = _userData //эта функция сработает, когда какие-либо события поступают из Firebase, и я проверил, что события срабатывают нормально обновитьПользовательскиеДанные(){ _userData.value = это } } @HiltViewModel класс UserViewModelImpl Конструктор @Inject (частный прослушиватель val: RealtimeListener): UserViewModel() { в этом { viewModelScope.launch { слушатель.пользователь.коллировать { Log.d("TAG", "триггер $it") } } } } В UserViewModelImpl Log.d("TAG", "trigger $it") выполняется только один раз, когда блок init{ вызывается сейчас, через некоторое время, любой новый триггер события, я не могу получить значение в блоке сбора,
также я знаю, что блок инициализации срабатывает только один раз, я хочу, чтобы поток выдавал значение каждый раз, когда я хочу обновить пользователя, мне нужна помощь, чтобы добиться этого, заранее спасибо :-)
Ответить

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

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

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

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

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