Emi*_*ann 6 java android coroutine kotlin kotlin-coroutines
我正在开发一个Android库,
当用户收到推送通知时,它可能包含深层链接,我需要返回到应用程序。
我在 kotlin 中做的没有问题。
这是需要发送深层链接时调用的函数
fun getDeepLinkFlow(): Flow<HashMap<String, String>?> = flow {
emit(deepLinks)
}
Run Code Online (Sandbox Code Playgroud)
在我的 kotlin 测试应用程序中,我也成功地使用了,就像这样使用。
GlobalScope.launch(coroutineContext) {
SDK.getDeepLinkFlow().collect { deepLinks ->
println(deepLinks)
}
}
Run Code Online (Sandbox Code Playgroud)
但现在,有一个 RN 项目想要使用该库,为了做到这一点,我们正在做一个 RN 模块,将 iOS 代码和 Android 代码结合起来。但它使用java。
那么,如何在 Java 代码上使用协程的收集功能呢?或者我可以做些什么不同的事情?
Coroutines/Flow在 Java 中使用本质上很尴尬,因为它依赖于转换后的suspend代码来工作。
一种可能的解决方案是公开另一种使用Flowjava 代码的方法。使用RxJava 集成库,Flowable您可以公开Java 端可以使用的兼容程序。
| 归档时间: |
|
| 查看次数: |
6301 次 |
| 最近记录: |