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

Языковая функция и библиотека, представленные в Kotlin 1.3, которые используются для реализации модели "зеленых потоков". Это позволяет писать неблокирующий код ввода-вывода естественным образом, не прибегая к фьючерсам или обратным вызовам.
1 ответ

Как вернуть список из базы данных Firestore в результате функции в Kotlin?

Я создаю приложение для друга и использую Firestore. Я хочу отобразить список избранных мест, но по какой-то причине этот список всегда пуст. Я не могу получить данные из Firestore. Это мой код: fun getListOfPlaces() : List<String> { val place…
1 ответ

@ Вокруг аспекта и функция приостановки Kotlin

Я пытаюсь понять, как создать аспект @Around для приостановленной функции Kotlin (например, для измерения времени, потраченного на эту функцию, или для пользовательского аспекта @Transactional): @Timed("my-timer") suspend fun test() { println("befor…
03 янв '19 в 02:57
9 ответов

MutableLiveData: невозможно вызвать setValue в фоновом потоке из Coroutine

Я пытаюсь вызвать обновление LiveData из сопрограммы: object AddressList: MutableLiveData<List<Address>>() fun getAddressesLiveData(): LiveData<List<Address>> { AddressList.value = listOf() GlobalScope.launch { AddressList.va…
1 ответ

Преобразование сообщений обработки потоков Java в очередь с использованием Kotlin Coroutines

В моем приложении для Android есть выделенная нить, которая выполняет сетевые вызовы API с использованием дооснащения. Поток выполняет дооснащение API-вызовов в зависимости от типа полученного сообщения. Я хотел бы перенести этот код для использован…
0 ответов

Почему обертывание этой функции с suspendCoroutine дает Невозможно выполнить это действие на незапечатанном экземпляре?

Я пытаюсь обернуть эту библиотеку ussd сопрограммами. но по какой-то причине, когда я заверну ussdController.send с suspendCoroutine я получаю эту ошибку E/AndroidRuntime: FATAL EXCEPTION: main Process: com.tabsamo.ussdtest, PID: 29211 java.lang.Ill…
13 ответов

Как реализовать таймер с соплинами Kotlin

Я хочу реализовать таймер с использованием сопрограмм Kotlin, что-то похожее на это реализовано в RxJava: Flowable.interval(0, 5, TimeUnit.SECONDS) .observeOn(AndroidSchedulers.mainThread()) .map { LocalDateTime.now() } .distinctUntilChanged { old, …
1 ответ

Сопрограммы, работающие в главном потоке вместо фона

У меня есть приложение, в котором пользователь выбирает PDF-файл из проводника, а затем мне нужно преобразовать этот PDF-файл в базу 64. Ниже приведен мой код для преобразования PDF в Base 64 private fun convertImageFileToBase64(imageFile: File?): S…
1 ответ

Kotlin сопрограммы - запустить другое задание, если через некоторое время первое не закончится

Я использую сопрограммы Kotlin для получения данных с сервера, я передаю отложенные функции другим функциям. Если сервер не дает ответ в течение 2000 мс, я хотел бы получить объект из локальной БД комнаты (если он существует в локальной базе данных)…
1 ответ

Android kotlin сопрограммы, есть ли лучший способ вернуть это значение?

Борьба с сопрограммами, но есть ли лучший способ использовать / получить значение для продолжительного вызова здесь, прежде чем передать его в другую сетевую подпрограмму с обратным вызовом? Я видел других, но я не могу использовать значение в после…
2 ответа

Сопрограммы правильный способ добавить работу в качестве ребенка от другого?

Учитывая, что у нас есть job1 : Job а также job2 : Job и мы хотим сделать job2 ребенок job1 (они созданы отдельно не имеют никакого отношения). Как правильно объявить эти отношения? так что когда job1 отменено job2 отменяется также... Я старался job…
1 ответ

Когда вы генерируете исключение в области сопрограмм, можно ли повторно использовать область сопрограмм?

У меня были проблемы с выяснением обработки ошибок с сопрограммами, которые я сузил до этого модульного теста со следующими шагами: Я создаю область сопрограммы с любым диспетчером. Я выбрасываю исключение в любом месте этой области в асинхронном бл…
2 ответа

Используйте сопрограммы для обновления пользовательского интерфейса при выполнении сетевого вызова

Я пытаюсь показать счетчик при совершении сетевого вызова с использованием сопрограмм. Кажется, что пользовательский интерфейс не показывает состояние LOADING_ITEMS (счетчик) до тех пор, пока не будет возвращен вызов itemsFromRepo, затем в течение д…
01 янв '19 в 09:39
3 ответа

Котлин: сфера действия сопрограмм против контекста сопрограмм

Кто-нибудь может объяснить разницу между ними? Я думаю, что видимость предоставляет ссылку (например, Job), чтобы отменить их, а контекст предоставляет ссылку на основной поток. Это так?
1 ответ

Как объединить существующие асинхронные запросы с RxAndroid или использовать сопрограммы Kotlin?

Вот мой код У меня есть асинхронный запрос, который реализован в SDK . Я использую его, я реализовал его простым способом вызова входа в систему, обеспечивающий обратный вызов для этого асинхронного запроса. Мой вопрос, возможно ли объединить этот а…
2 ответа

Котлин сопрограммы GlobalScope.launch vs runBlocking

Есть ли разница между этими двумя подходами? runBlocking { launch(coroutineDispatcher) { // job } } GlobalScope.launch(coroutineDispatcher) { // job }
2 ответа

Как продолжить функцию приостановки в динамическом прокси в той же сопрограмме?

Я хочу продолжить функцию приостановки в динамическом прокси в той же сопрограмме. Пожалуйста, посмотрите на следующий код: interface Adder { suspend fun add(a: Int, b: Int): Int } val IH = InvocationHandler { _, method, args -> val continuation …
31 янв '19 в 19:03
2 ответа

В чем разница между запуском / объединением и асинхронным / ожиданием в сопрограммах Kotlin

В kotlinx.coroutines Библиотека, вы можете начать новую сопрограмму, используя либо launch (с join) или же async (с await). В чем разница между ними?
11 ответов

Что означает функция приостановки в Kotlin Coroutine

Я читаю Kotlin Coroutine и знаю, что он основан на suspend функция. Но что делает suspend имею в виду? Сопрограмма или функция приостанавливается? С https://kotlinlang.org/docs/reference/coroutines.html По сути, сопрограммы являются вычислениями, ко…
6 ответов

Я всегда могу использовать WorkManager вместо сопрограмм?

Интересно, почему я должен беспокоиться о rx или сопрограммах, когда есть блестящее решение как Workmanager. Но почти во всех уроках они используют сопрограммы, поэтому может быть, у workamanager есть недостатки?
2 ответа

Как обновить пользовательский интерфейс в сопрограммах в Kotlin 1.3

Я пытаюсь вызвать API, и когда мои переменные будут готовы, обновите компоненты пользовательского интерфейса соответственно. Это мой сетевой синглтон, который запускает сопрограмму: object MapNetwork { fun getRoute(request: RoutesRequest, success: (…