Описание тега kotlin-flow
В сопрограммах Kotlin поток — это поток асинхронно вычисляемых значений. Используйте этот тег, если у вас возникли проблемы с созданием, преобразованием или потреблением потоков.
1
ответ
Как внедрить viewModelScope для модульного теста Android с сопрограммами Kotlin?
Вопросы Какая стратегия лучше всего вводить viewModelScope для модульных тестов Android с сопрограммами Kotlin? Когда CoroutineScope вводится в ViewModel для модульных тестов, должен ли CoroutineDispatcher также быть введен и определен с использован…
11 июн '20 в 22:49
1
ответ
В чем разница между потоком и channelFlow?
У меня есть оба кода ниже, и результат для меня выглядит одинаково val namesFlow = flow { println("Start flow") (0..10).forEach { // Emit items with 500 milliseconds delay delay(500) println("Emitting $it") emit(it) } }.map { it …
12 авг '20 в 16:29
0
ответов
Kotlin Flow: недостаточно информации для вывода переменной типа внутри функции построителя Flow
У меня есть такая функция расширения: inline operator fun <reified T : Any> SharedPreferences.get(key: String, defaultValue: T? = null): T? { return when (T::class) { String::class -> getString(key, defaultValue as? String ?: "") as T Int::…
15 апр '20 в 06:27
2
ответа
Преобразование InputStream в Flow
Я хотел бы прочитать содержимое файла и создать поток для каждой строки его содержимого. Итак, мне нужно реализовать функцию со следующей подписью: fun InputStream.linesToFlow(): Flow<String> Есть ли способ реализовать эту функцию?
15 май '20 в 20:44
3
ответа
Как возобновить поток после исключения
У меня такой код: val channel = BroadcastChannel<Event>(10) fun setup() { scope.launch { channel.asFlow(). .flatMapLatest { fetchSomeData() } .catch { emit(DefaultData()) } .onEach { handleData() } .collect() } } fun load() { channel.offer(Eve…
03 фев '20 в 15:29
4
ответа
Как я могу отклонить setOnClickListener на 1 секунду с помощью Kotlin Coroutines?
Когда пользователь быстро нажимает на кнопку, метод showDialog() отображается несколько раз друг над другом, поэтому, когда вы закрываете его, за ним появляется еще один. Я ищу способ игнорировать второе нажатие в течение 1 секунды без использования…
12 фев '20 в 17:02
1
ответ
Как связать Coroutine Flow?
Я мог бы легко связать coroutine Flows, выполнив: val someFlow = flow { //Some logic that my succeed or throw error } val anotherFlow = flow { // Another logic that my succeed or throe error } val resultingFlow = someFlow.flatmapLatest(anotherFlow) …
02 мар '20 в 12:16
1
ответ
Room with Flow возвращает значение null, когда оно пусто
Я только начал смотреть на Room, Coroutines и Flow и наткнулся на кое-что странное: то, что я ожидаю, будет пустым потоком, на самом деле имеет один нулевой элемент. Моя настройка выглядит следующим образом: с общим T для моих настоящих сущностей. i…
05 мар '20 в 21:13
3
ответа
Kotlin Flows обратный вызов взаимодействия с Java
Я искал подходящее решение или передовую практику, когда хочу использовать Kotlin Flows с обычными обратными вызовами. Мой вариант использования состоит в том, что я пишу библиотеку kotlin, которая использует Kotlin Flow внутри, и я должен предполож…
09 мар '20 в 19:57
2
ответа
Kotlin Flow сортировка
Есть ли способ отсортировать коллекцию, созданную потоком, в произвольном порядке, например: fun getList():Flow<Something> fun main(){ launch{ getList().filter{}.map{}.sortBy{ // }.toList() } }
15 мар '20 в 12:11
1
ответ
Как сканировать рекурсивные структуры с помощью сопрограмм Kotlin?
Учитывая древовидную структуру и операцию для выборки дочерних узлов узла, например: typealias NodeReference = URL data class Node( val data:Data, val childrenList:List<NodeReference>) suspend fun resolve(nodeRef:NodeReference) : Node Вы знает…
04 апр '20 в 20:13
0
ответов
Аналог RxJava .share() в сопрограммах
Я развлекаюсь suspend fun getData(): Data {...} чтобы получить данные из бэкэнда. Если это развлечение вызывается из разных мест, я хочу избежать многократного обращения к серверу, все последующие исполнения будут ждать результата первого выполнения…
09 апр '20 в 19:45
1
ответ
Как выдавать значения из разных функций, но собирать их все в одном месте? Поток Котлин
В моей деятельности мне нужно выдавать разные значения потока для обратных вызовов, например: override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) emit(1) } override …
03 май '20 в 13:35
5
ответов
Как передать значение потока из другой функции? Котлинские сопрограммы
У меня есть поток: val myflow = kotlinx.coroutines.flow.flow<Message>{} и хотите испускать значения с помощью функции: override suspend fun sendMessage(chat: Chat, message: Message) { myflow.emit(message) } Но компилятор не позволяет мне этого…
07 май '20 в 13:07
1
ответ
Kotlin flow: собирать только элементы, которые повторяются как минимум N раз
Я использую функцию распознавания символов ML Kit, и иногда первые несколько значений неверны, и только через некоторое время камера стабилизируется и выдает правильные значения. Я не хочу отбрасывать первые значения X, потому что я не знаю, сколько…
12 май '20 в 21:25
2
ответа
Развлечение с потоками, получение null при преобразовании в живые данные
Я пробую потоки и пытаюсь понять, как их можно преобразовать в mvvm с моделями представления Android. Вот что я сначала попробовал проверить: class HomeViewModel : ViewModel() { private lateinit var glucoseFlow: LiveData<Int> var _glucoseFlow …
06 фев '20 в 01:46
1
ответ
Как использовать объединенный результат Kotlin Flows в модели просмотра из нескольких вариантов использования / взаимодействий?
Задний план Я пытаюсь реализовать шаблон чистой архитектуры в стиле MVVM с репозиториями и вариантами использования / взаимодействиями. Я хотел бы использовать Kotlin Flows для вариантов использования / взаимодействия. Все варианты использования име…
10 апр '20 в 12:25
1
ответ
поток котлина не испускает значения из другой функции
Я пытаюсь реализовать поток состояний kotlin, но не могу понять причину, по которой он не работает. Токовый выход: verificatio 34567 Ожидаемый результат: проверка 34567 не удалось package stateflowDuplicate import kotlinx.coroutines.flow.collect imp…
11 июн '20 в 13:50
0
ответов
Как преобразовать обработчик Android в поток в Kotlin
У меня есть обработчик, который я использую для связи со службой. Я бы хотел вызвать из него функции приостановки, но это, очевидно, невозможно. Я бы не хотел запускать сопрограмму внутри функции handleMessage, потому что я хотел бы сохранить послед…
17 июн '20 в 01:46
5
ответов
Библиотека Android Room с Kotlin Flow toList () не работает
Я сделал простой пример приложения с использованием Room и Flows: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val build = R…
21 июн '20 в 16:17