![](/img/trans.png)
[英]Code flow with the combination of stream, collect and forEach in java
[英]How to collect a coroutine flow in java?
我正在開發一個 Android 庫,
當用戶收到推送通知時,它可能包含深層鏈接,我需要返回到應用程序。
我在 kotlin 中沒有問題。
這是需要發送深層鏈接時調用的 function
fun getDeepLinkFlow(): Flow<HashMap<String, String>?> = flow {
emit(deepLinks)
}
在我的 kotlin 測試應用程序中,我也設法毫無問題地使用,像這樣使用。
GlobalScope.launch(coroutineContext) {
SDK.getDeepLinkFlow().collect { deepLinks ->
println(deepLinks)
}
}
但是現在,有一個 RN 項目想要使用該 lib,為了做到這一點,我們正在做一個 RN 模塊,它連接了 iOS 代碼和 Android 代碼。 但它使用 java。
那么,如何在 Java 代碼上使用來自 Coroutines 的收集? 或者我可以做些什么不同的事情?
從 Java 開始使用 Coroutines/ Flow
本身就很尷尬,因為它依賴於轉換后的suspend
代碼來工作。
一種可能的解決方案是向您的 java 代碼公開另一種使用Flow
的方式。 使用RxJava 集成庫,您可以公開 java 端可以使用的兼容Flowable
。
我決定改變使用深度鏈接的方式,開始使用帶有 liveData 的 ViewModel。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.