技術文章
技術問答
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
1
0
自我挑戰組
Notes from an android developer
系列 第
1
篇
#001 kotlin flow
16th鐵人賽
艾克西猴
2024-09-14 23:27:11
674 瀏覽
分享至
工作上開始接觸 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
組
累計文章數
19838
篇
完賽人數
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
熱門問題
趣味SQL,給了一組編號後,用SQL產生亂數編碼的結果(更新Copilot及Google AI見解,SQL只能貼圖)
AI會議轉錄如何盡可能縮小明文攻擊面?
熱門回答
趣味SQL,給了一組編號後,用SQL產生亂數編碼的結果(更新Copilot及Google AI見解,SQL只能貼圖)
熱門文章
AI 推論正在吞噬雲端
用 AI 寫 MCP server 很快就會跑,但「會跑」不等於「安全」——多租戶隔離的五條 best practice
[Tedium Is Stability-01] 結構性的不安:AI 幫你把功能寫完了,你為什麼還是不放心?
Memory 系統 — 讓 Claude 不只記得「專案」,還記得「你」
Agent 寫的 code 要怎麼 review?先看它到底改了什麼
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}