技術文章
技術問答
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
1
0
自我挑戰組
Notes from an android developer
系列 第
1
篇
#001 kotlin flow
16th鐵人賽
艾克西猴
2024-09-14 23:27:11
661 瀏覽
分享至
工作上開始接觸 kotlin 的 flow, 所以先來一些關於 flow 的整理, 彙整自己的認識
什麼是 kotlin flow
Kotlin Flow 是一種的非同步的 stream,可以在一段時間內發出多個值。它由 Flow 介面定義,需要實作一個稱為 collect 的方法。與傳統的非同步不同,Flow 允許以聲明的方式來處理 data stream,讓應用程式更容易管理複雜的資料流。
關於 Flow 幾個特性
Cold Streams:
Flow 是 cold stream (冷資料流), 意思是在 stream 被 collect 之前,其程式碼不會執行。此行為與 RxJava 的 Observables 相似,只有當 subscriber 訂閱時才會開始 emission.
Asynchronous Emission:
Flow 可使用
emit()
函式以非同步的方式 emit 數值/資料,允許 non-blocking 的操作。這對於長時間執行的任務或 I/O 受限的作業特別有用
與 Coroutines 的緊密整合;
Flow 可與 Kotlin Coroutines 無縫地運作,讓開發人員可以利用 suspending functions 和 Coroutine builders 來管理 concurrency,而不需要傳統 threading models 的複雜性。
Cancellation: Flow 支援結構化 (structured) concurrency, 當一個 Flow 不再被需要時, 你可以 cancel 一個 Flow.
Error Handling: 當資料處裡過程中如有異常 (exception) 發生提供有錯誤控制機制.
留言
追蹤
檢舉
下一篇
#002 flow example
系列文
Notes from an android developer
共
5
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
1
#001 kotlin flow
2
#002 flow example
3
#003 kotlin flow more examples
4
#004 kotlin channelFlow
5
#005 kotlin channelFlow-2
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19837
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
SAP B1 如何將"自定義表格"匯出並且匯入到另一個資料庫
webview cab 封包檔
熱門回答
webview cab 封包檔
SAP B1 如何將"自定義表格"匯出並且匯入到另一個資料庫
熱門文章
[AI Agent 架構筆記] 記憶系統真正的敵人不是忘記,而是錯誤地一直記得——我做 AI 長期記憶的結構化設計與翻車實錄
被回答了,還是被消失了?
[Frame & Reference Method-03] 讓 AI 吐槽你,是一面免費的鏡子 : 從一篇抱怨文,看懂自己怎麼駕馭 AI
當 AI 說「走路 10 分鐘」,那個數字是算出來的還是猜的?一次飯店搜尋暴露的工具盲點
CLAUDE.md — 讓 Claude 跨對話記得你的專案,不用每次重講
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}