2.7 RxKotlin
RxKotlin可以理解為RxJava在Kotlin上的一個變種,原理都是一樣的 , 只是操作語言變成了Kotlin,然后封裝了一下使得可以更優雅的調用 , 這里給大家一個具體的實現案例,不再過多講解 。
private fun test() {Observable.create { 1 }.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribeBy(onNext = {},onError = {})}2.8 Kotlin協程
協程其實和上面所說的線程并不是一個概念,協程是什么?根據官方文檔的描述,協程本質上是輕量級的線程 。既然是輕量,那說明協程的資源消耗和性能等方面和線程比起來應該是有優勢的 。那這樣看來我們以前使用多線程實現的異步功能 , 現在基本上都可以用協程來替代了 。
協程是一個全新的東西,介于篇幅這里就不展開講解了 , 后面會專門寫介紹協程的文章 。
三、總結今天總結了Android平臺上實現多線程的幾種方式,希望能給到需要的朋友一些幫助 。
最后在這里就還分享一份由大佬親自收錄整理的Android學習PDF 架構視頻 面試文檔 源碼筆記,高級架構技術進階腦圖、Android開發面試專題資料 , 高級進階架構資料
這些都是我現在閑暇時還會反復翻閱的精品資料 。里面對近幾年的大廠面試高頻知識點都有詳細的講解 。相信可以有效地幫助大家掌握知識、理解原理,幫助大家在未來取得一份不錯的答卷 。
當然,你也可以拿去查漏補缺,提升自身的競爭力 。
真心希望可以幫助到大家,Android路漫漫,共勉!
如果你有需要的話,只需私信我【進階】即可獲取

文章插圖

文章插圖

文章插圖

文章插圖
Android多線程的四種方式:Handler、AsyncTask、ThreadPoolExector、IntentService異步通信機制,將工作線程中需更新UI的操作信息 傳遞到 UI主線程,從而實現 工作線程對UI的更新處理 , 最終實現異步消息的處理 。Handler不僅僅能將子線程的數據傳遞給主線程,它能實現任意兩個線程的數據傳遞 。
(1)Message
Message 可以在線程之間傳遞消息 。可以在它的內部攜帶少量數據,用于在不同線程之間進行數據交換 。除了 what 字段,還可以使用 arg1 和 arg2 來攜帶整型數據 , 使用 obj 來攜帶 Object 數據 。
(2) Handler
Handler 作為處理中心,用于發送(sendMessage 系列方法)與處理消息(handleMessage 方法) 。
(3) MessageQueue
MessageQueue 用于存放所有通過 Handler 發送的消息 。這部分消息會一直存放在消息隊列中,直到被處理 。每個線程中只會有一個 MessageQueue 對象
(4) Looper
Looper 用于管理 MessageQueue 隊列,Looper對象通過loop()方法開啟了一個死循環——for (;;){},不斷地從looper內的MessageQueue中取出Message,并傳遞到 Handler 的 handleMessage() 方法中 。每個線程中只會有一個 Looper 對象 。
AsyncTask 是一種輕量級的任務異步類 , 可以在后臺子線程執行任務,且將執行進度及執行結果傳遞給 UI 線程 。
(1)onPreExecute()
在 UI 線程上工作,在任務執行 doInBackground() 之前調用 。此步驟通常用于設置任務,例如在用戶界面中顯示進度條 。
(2)doInBackground(Params... params)
在子線程中工作 , 在 onPreExecute() 方法結束后執行 , 這一步被用于在后臺執行長時間的任務,Params 參數通過 execute(Params) 方法被傳遞到此方法中 。任務執行結束后,將結果傳遞給 onPostExecute(Result) 方法,同時我們可以通過 publishProgress(Progress) 方法,將執行進度發送給 onProgressUpdate(Progress) 方法 。
- “海馬體”長度不到10厘米 竟能偷走人類的記憶力
- 科學家揭秘:人類基因是肢體再生的關鍵
- 娜迦毒蛇,不是蛇而是世界上最辣的辣椒
- 世界最強十大航母:美航母還能領先多少年?
- 地球上的生物為何要依賴氧氣生存?氧氣是怎么產生的
- 大腦的奧秘,科學揭秘人類大腦如何一心二用!
- 破解挑戰者號背后的五大驚天謎團?
- 形容自己再做也得不到重視的成語
- 形容一次又一次的發生的成語
- 形容聲音吵很煩躁的成語
