Android帝國—四大天王(RxAndroid) 2
寫文章是一件比較麻煩的事。好處就是讓你不僅鞏固所學。還能夠更深刻地理解所學的,如果理解不好,在寫的過程中就暴露出來了。這和程式碼差不多。
執行緒理解起來(在這裡,其實很難的)也不是那麼難,這裡我們完全可以將執行緒想象交通道路。每逢週末下班,或小長假時,回家路或高速上一定會堵車,想早點回家的心情都是可以理解,程式也是跑線上程上的車,如果所有的操作都跑在一個執行緒會是什麼樣,尤其在這個缺乏耐心的年頭。(圖)這個是否為了緩解交通擁堵,我們需要採取一些措施。我們需要透過調配方式或者。
由於 Android 對主執行緒看的很緊,小窄路,稍不留神,就ANR了。我們應用需要頻繁訪問訪問獲取資料,也可以進行操作 IO,然後將資料呈現到介面上。
RxAndroid 的確有些難於理解概念,他並不是簡單非同步回撥,如果用好了他的確是得心應手的利器
很常見就是我們在一個執行緒處理網路請求和 IO 操作。然後返回到主執行緒繪製檢視。有點像並道吧。並道比較麻煩得左右前後注意。這樣複雜的事rxandroid幫我們做了,有了他我們可以利用他提供的選擇線上程間任意穿梭。有了交警害怕堵車
背壓問題,透過一個例項給大家解釋一下。什麼是背壓。我們在螢幕上移動手指。那麼就會產生連續的觸控事件。我們獲取事件的座標資訊,來進行繪製一個點。好。問題來了,還沒有繪製完當前的點,下一個事件就來了。我們怎麼辦。這個火爆的自助餐門前一樣。這就是背壓。我們無法及時消費掉這些事件。那麼是等待還是離開就是我們對應的策略。在 rxandroid 1 的時代我們observable 在後期小版本提供對應處理。但是有些不需要處理背壓。所以在 rxandroid2有了flowable 他不是什麼新東西。就是將 observable 分離出一份專門對應背壓的。但是 flowableprocessor 這個處理器可是一個新東西。
我們先總體,看一看大致流程吧,先傳送事件(1),然後就可以訂閱事件(2),可以先於傳送前後進行訂閱事件,獲得(捕獲)訂閱的事件,處理事件(3),雖然不感興趣就取消訂閱事件(4),這就是整個流程了。
Observable 實現了 publiser 介面來發布事件,Observer 訂閱(subscribe) Obsrvable 釋出的事件。然後在 onNext 處理傳送過來的事件。然後在 onSubscribe 處理是否取消訂閱。這就是整個Rx的流程,
我們如何建立事件源頭。 多數情況我們會用到 just 和 create 來建立事件源,使用 Observable.just 方法可以建立一個事件源,這裡我們可以傳入一個字串,集合或物件。
range 可以建立一些列的整數。
我們最常用還是 create 來建立一個事件源。Observable 表示可以觀察的物件,看看語法 able(能夠被)。
這裡呼叫 create 方法釋出一定可觀察到事件源,這方法接受一個 ObservableOnSubscribe 物件作為引數。在java 中通常都用匿名類來實現函數語言程式設計。這裡我們分析一下語法吧,使用英文的語法,而非 code 。在這裡 subscribe 是訂閱意思,大家都清楚吧,OnSubscribe 表示訂閱的可觀察物件。我們需要來實現他的訂閱方法,方法提供以引數供我們使用,就是可以發射發射器的物件,
用於釋出資料,我們具體怎麼釋出資料,都是在這裡完成的。
多數情況我們會結合著處理網路請求。和處理 UI 例如點選,拖到等事件,包裹這些請求和事件,來優雅地實現非同步程式設計。下面例子是包裹了 okhttp 的請求。
作者:zidea
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2334/viewspace-2821660/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 後“帝國”時代:微軟在《帝國時代2》之後的RTS嘗試微軟
- Android自定義View:黑客帝國數字雨AndroidView黑客
- 第2章Android四大元件Android元件
- 黑客帝國背景效果黑客
- 黑客帝國來襲!黑客
- 帝國cms備份和恢復 帝國cms恢復資料
- 帝國cms備份500錯誤 帝國cms重新整理失敗
- 微軟資訊帝國架構微軟架構
- spring帝國-開篇Spring
- 馬斯克的商業帝國馬斯克
- 帝國CMS搬家步驟
- 如何開啟帝國cms安全設定?登入帝國cms管理後臺
- 帝國CMS 錯誤程式碼 ERR_INVALID_RESPONSE 帝國cms登入
- 帝國CMS修改網站logo,帝國CMS Logo更換步驟網站Go
- RxAndroid2+RxLifecycle2+Retrofit2 依賴引入和衝突分析Android
- 帝國cms備份的資料庫資料夾-帝國CMS備份中心資料庫
- 【大神帝國】意淫搞笑網站網站
- NoSQL:一個帝國的崛起SQL
- 《財富的帝國》筆記筆記
- 帝國cms資料庫在哪資料庫
- 遊戲論·書評丨“帝國”理論與遊戲帝國:全球資本與電子遊戲遊戲
- 帝國時代正版合作!新一代策略手遊《重返帝國》今日全平臺公測
- 帝國cms密碼忘記,帝國cms網站忘記登陸賬號密碼密碼網站
- 帝國cms登陸錯誤次數 帝國cms登陸錯誤次數超過
- 不懂程式,能看明白「黑客帝國」嗎?黑客
- 不懂程式,能看明白《黑客帝國》嗎?黑客
- 電影《黑客帝國》的臺詞黑客
- 蘋果帝國的財務資料蘋果
- 帝國cms怎麼整站遷移
- 帝國cms安全設定是什麼
- 帝國cms無法重新整理資料 帝國cms無法重新整理資料庫資料庫
- 帝國cms改目錄後打不開,帝國cms改目錄生成後還是404
- 2020年10月DB-Engines排行:商業開源平分秋色 並駕齊驅四大天王
- 帝國時代2在windows7下面花屏的解決辦法Windows
- 誰在掌管6萬億的亞馬遜帝國亞馬遜
- 我叫小M,立志建立MySQL帝國。MySql
- 《移動的帝國》(六):日本手機遊戲遊戲
- Infographic: 蘋果帝國究竟有多龐大?蘋果