Как собрать поток сопрограмм в java? - PullRequest
0 голосов
/ 27 мая 2020

Я разрабатываю библиотеку Android,

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

Я сделал это в kotlin без проблем.

Это функция, которая вызывается, когда ей нужно отправить глубокие ссылки

fun getDeepLinkFlow(): Flow<HashMap<String, String>?> = flow {
    emit(deepLinks)
}

И в моем тестовом приложении kotlin я управлял для использования без проблем, используя вот так.

GlobalScope.launch(coroutineContext) {
    SDK.getDeepLinkFlow().collect { deepLinks ->
        println(deepLinks)
    }
}

Но теперь есть проект RN, который хочет использовать библиотеку, для этого мы делаем модуль RN, который присоединяется к * Код 1020 * и код 1021 *. Но он использует java.

Итак, как я могу использовать сбор из сопрограмм с кодом Java? или что я мог сделать иначе?

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Я решил изменить способ использования глубинных ссылок и вместо этого начать использовать ViewModel с liveData.

0 голосов
/ 27 мая 2020

Coroutines / Flow по своей сути неудобно использовать из Java, поскольку для работы он полагается на преобразованный код suspend.

Одно из возможных решений - предоставить альтернативный способ использования Flow на ваш код java. Используя библиотеку интеграции Rx Java , вы можете предоставить совместимый Flowable, который может использовать сторона java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...