Описание тега kotlin-sharedflow

2 ответа

Преобразование LiveData в StateFlow / SharedFlow

Каков эквивалентный код для этого преобразования данных в реальном времени в StateFlow / SharedFlow? val myLiveData: LiveData<MyLiveData> = Transformations .switchMap(_query) { if (it == null) { AbsentLiveData.create() } else { repository.load…
0 ответов

Android - MutableSharedFlow не удалось собрать новые значения с несколькими подписчиками

Я хочу создать модель общего представления для связи MainActivity с фрагментами. Я решил использовать поток обмена для управления событиями. private val _sharedChannel: MutableSharedFlow<SharedEvent> = MutableSharedFlow( replay = 0,extraBuffer…
1 ответ

Работа комбайна Kotlin SharedFlow. Поведение zip в конкретной ситуации

Я совмещаю два а затем выполнение длительной рабочей операции. Вначале я знаю состояние, поэтому я передаю «начальное значение» для обоих потоков. После этого пользователь может передавать в любой поток. Оба потока в основном независимы, но в опреде…
14 апр '21 в 17:07
0 ответов

SharedFlow, собранный с Java, не работает

У меня есть небольшой набор действий, которые мне нужно перезапустить при определенных событиях, сгенерированных в фоновом режиме. Поскольку это будет краткосрочный обходной путь, я подумал, что наименее инвазивным способом было бы иметь общий поток…
1 ответ

Когда следует собирать события SharedFlow в жизненном цикле фрагмента

Я подумал, что собирать данные SharedFlow на onViewCreated - это нормально. Но когда я заменяю фрагмент n раз, а затем запускаю какое-то событие в SharedFlow, он выдает мне событие n раз вместо одного события. Я исправил, как я помещаю свой код в on…
3 ответа

SharedFlow в проекте Android не работает должным образом

Я пытался передать события из пользовательского интерфейса в viewModel, используя sharedFlow, это мой класс viewmodel. class MainActivityViewModel () : ViewModel() { val actions = MutableSharedFlow<Action>() private val _state = MutableStateFl…
5 ответов

Последнее значение StateFlow снова собирается в пользовательском интерфейсе

Итак, в последнее время я работал с API StateFlow, SharedFlow и Channels, но я борюсь с одним распространенным вариантом использования, пытаясь перенести свой код из LiveData в StateFlow на уровне представления. Проблема, с которой я сталкиваюсь, за…
1 ответ

LiveData горячая или холодная?

Мы знаем, что StateFlow и SharedFlow популярны. StateFlow - это горячий поток - он остается в памяти до тех пор, пока поток собирается или пока существуют любые другие ссылки на него из корня сборки мусора. SharedFlow - это горячий поток, который пе…
2 ответа

Как сделать так, чтобы подписчик на kotlin sharedflow выполнял операции параллельно?

У меня есть соединение с устройством Bluetooth, которое передает данные каждые 250 мс. В моей модели просмотра я хочу подписаться на указанные данные, запустить некоторый код приостановки (для выполнения которого требуется примерно 1000 мсек), а зат…
2 ответа

Как создать механизм опроса с сопрограммами kotlin?

Я пытаюсь создать механизм опроса с использованием сопрограмм kotlin и хочу остановиться, когда нет подписчиков, и активен, когда есть хотя бы один подписчик. Мой вопрос, это sharedFlow правильный выбор в этом сценарии, или я должен использовать cha…
15 июл '21 в 20:22
0 ответов

Бросить исключение в viewModelScope, но поймать его

Итак, у меня есть SharedFlow, который в определенном случае что-то испускает. В другой момент у меня есть блок try-catch, и я хочу пропустить дальнейшее выполнение блока try, только если Flow что-то собирает во время выполнения. В то же время я не х…
1 ответ

как избежать повторения повторенияOnLifecycle снова и снова при возобновлении фрагмента

как я могу избежать повторного выполнения кода collect{} при возвращении к фрагменту. ViewModel класс private val _commitResult = MutableStateFlow<Map<String, Any>>(mapOf()) val commitResult: StateFlow<Map<String, Any>> = _co…
10 сен '21 в 11:14
1 ответ

Как избежать состояния гонки в FragmentManager?

Моя цель - разрешить только один экземпляр одного и того же фрагмента диалога в стеке фрагментов. Текущее условие триггера исходит от SharedFlow и может запускаться так часто, как 7ms отдельно между значениями. Вот что я пробовал: Размещение кода в …
1 ответ

SharedFlow не будет передавать значение подписчику во фрагменте (сбор)

Я хочу использовать SharedFlow вместо того StateFlow потому что первый не требует начального значения ViewModel : val photosPaginData = photoRepository.getPhotosPagingData() // Flow<PagingData<Photo>> .cachedIn(viewModelScope) .shareIn(v…
0 ответов

Android. SharedFlow для обновления состояния

Можно ли подписаться на изменения состояния SharedFlow в результате различных действий. Например, у меня есть Activity A и Activity B. Внутри Activity BI необходимо получить некоторые данные, и когда я вернусь к Activity A, экран должен быть обновле…
1 ответ

Как получить предыдущее значение из SharedFlow после воссоздания действия/изменения конфигурации в Jetpack Compose?

Предположим, у меня есть ScanActivity используя реактивный ранец, который может сканировать штрих-код, результат будет показан в TextFieldи результат сохранится от изменения конфигурации (например, поворот экрана). я не буду использовать StateFlow п…
1 ответ

SharedFlow.last() никогда не возвращается

У меня есть общий поток со значением воспроизведения, равным единице. Но когда я пытаюсь получить доступ к последнему переданному значению, вызов никогда не возвращается, в то время как first() возвращает. Вот мой код: val game = GameSettingsReposit…
26 янв '22 в 22:34
2 ответа

Использование SharedFlow в Android kotlin

Привет, я изучаю поток в Котлине. Я изучаю MutableStateFlow и MutableSharedFlow . Я пытался изучить MutableStateFlow на примере реального мира. Но я не могу получить пример MutableSharedFlow , где он больше подходит. Я попробовал немного MutableStat…
0 ответов

Использование MutableSharedFlow в сочетании со стандартным потоком

Я не уверен, как я могу решить эту проблему. У меня есть переменная, в которой я храню combineпоток. Мне нужно объединить MutableSharedFlow и Flow. Это код, который я использую val users = combine( reloadUsers, nicknameQuery.asFlow() ) { reloadUsers…
29 мар '21 в 18:45
1 ответ

MutableSharedFlow — разница между replay и extraBufferCapacity

MutableSharedFlow принимает 3 параметра: replay, extraBufferCapacity и onBufferOverflow. В чем разница между replay и extraBufferCapacity? В документации упоминается следующее: replay - количество значений, воспроизводимых новым подписчикам (не може…