




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
EventBus2024/1/29132024/1/29認(rèn)識EventBus使用EventBus目錄CONTENT12參考教材:《Android應(yīng)用開發(fā)項目化教程》認(rèn)識EventBus來源EventBus是GreenRobot出品的Android系統(tǒng)的一個EventBus類庫。主要功能是替代Intent、Handler、BroadCast在Fragment、Activity、Service及線程之間傳遞消息。EventBus的優(yōu)點(diǎn)是開銷小,代碼更優(yōu)雅,并實現(xiàn)將發(fā)送者和接收者解耦。1認(rèn)識EventBus角色Publisher:是發(fā)布者,通過post()方法將消息事件Event發(fā)布到事件總線。EventBus:是事件總線,遍歷所有已經(jīng)注冊事件的訂閱者們,找到里邊的onEvent等4個方法,分發(fā)Event。Subscriber:是訂閱者,收到事件總線發(fā)下來的消息。即onEvent方法被執(zhí)行。注意參數(shù)類型必須和發(fā)布者發(fā)布的參數(shù)一致。1認(rèn)識EventBus訂閱者訂閱者首先調(diào)用EventBus的register接口訂閱某種類型的事件,當(dāng)發(fā)布者通過post接口發(fā)布該類型的事件時,EventBus執(zhí)行調(diào)用者的事件響應(yīng)函數(shù)。1認(rèn)識EventBusEventBus類EventBus類負(fù)責(zé)所有對外暴露的API,其中的register()、post()、unregister()函數(shù)配合上自定義的EventType及事件響應(yīng)函數(shù)即可完成核心功能。EventBus默認(rèn)可通過靜態(tài)函數(shù)getDefault()獲取單例,當(dāng)然有需要也可以通過EventBusBuilder或構(gòu)造函數(shù)新建一個EventBus,每個新建的EventBus發(fā)布和訂閱事件都是相互隔離的,即一個EventBus對象中的發(fā)布者發(fā)布事件,另一個EventBus對象中的訂閱者不會收到該訂閱。1認(rèn)識EventBusEventBus類4種訂閱函數(shù)類onEvent:如果使用onEvent作為訂閱函數(shù),那么該事件在哪個線程發(fā)布出來的,onEvent就會在這個線程中運(yùn)行,也就是說發(fā)布事件和接收事件線程在同一個線程。使用這個方法時,在onEvent方法中不能執(zhí)行耗時操作,如果執(zhí)行耗時操作容易導(dǎo)致事件分發(fā)延遲。onEventMainThread:如果使用onEventMainThread作為訂閱函數(shù),那么不論事件是在哪個線程中發(fā)布出來的,onEventMainThread都會在UI線程中執(zhí)行,接收事件就會在UI線程中運(yùn)行,這個在Android中是非常有用的,因為在Android中只能在UI線程中跟新UI,所以在onEvnetMainThread方法中是不能執(zhí)行耗時操作的。1認(rèn)識EventBusEventBus類4種訂閱函數(shù)類onEventBackground:如果使用onEventBackgrond作為訂閱函數(shù),那么如果事件是在UI線程中發(fā)布出來的,那么onEventBackground就會在子線程中運(yùn)行,如果事件本來就是子線程中發(fā)布出來的,那么onEventBackground函數(shù)直接在該子線程中執(zhí)行。onEventAsync:使用這個函數(shù)作為訂閱函數(shù),那么無論事件在哪個線程發(fā)布,都會創(chuàng)建新的子線程在執(zhí)行onEventAsync。1認(rèn)識EventBus事件事件(Event)又可稱為消息。其實就是一個對象,可以是網(wǎng)絡(luò)請求返回的字符串,也可以是某個開關(guān)狀態(tài)等等。事件類型(EventType)指事件所屬的Class。事件分為一般事件和Sticky事件,相對于一般事件,Sticky事件不同之處在于,當(dāng)事件發(fā)布后,再有訂閱者開始訂閱該類型事件,依然能收到該類型事件最近一個Sticky事件。1使用EventBus一般流程2使用EventBus一般流程定義事件:定義一個類,繼承默認(rèn)的Object即可,用于區(qū)分事件和傳輸數(shù)據(jù)。添加訂閱者:EventBus.getDefault().register(this);將所在類作為訂閱者,框架會通過反射機(jī)制獲取所有方法及其參數(shù)。訂閱者所在類可以定義以下一個或多個方法用以接收事件:publicvoidonEvent(MsgEvent1msg)publicvoidonEventMainThread(MsgEvent1msg)publicvoidonEventBackgroundThread(MsgEvent1msg)publicvoidonEventAsync(MsgEvent1msg)2使用EventBus一般流程發(fā)布者發(fā)布事件:EventBus.getDefault().post(newMsgEvent1(“主線程發(fā)的消息1”));一旦執(zhí)行了此方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 焙烤食品制造市場推廣策略考核試卷
- 玻璃加工過程中的精度控制考核試卷
- 煤炭行業(yè)的企業(yè)家精神與創(chuàng)新考核試卷
- 橡膠制品的環(huán)境可持續(xù)發(fā)展戰(zhàn)略考核試卷
- 果蔬種植資源利用與保護(hù)考核試卷
- 期貨市場交易策略回測平臺服務(wù)考核試卷
- 病房護(hù)理設(shè)備的多功能一體化設(shè)計考核試卷
- 化學(xué)品在防偽印刷技術(shù)中的應(yīng)用考核試卷
- 電器具材料選擇與應(yīng)用考核試卷
- 視網(wǎng)膜脫離護(hù)理查房
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蝕工程施工及驗收規(guī)范
- MOOC 敦煌文學(xué)藝術(shù)-浙江師范大學(xué) 中國大學(xué)慕課答案
- 貫徹落實八項規(guī)定精神情況自查表
- GA/T 1073-2013生物樣品血液、尿液中乙醇、甲醇、正丙醇、乙醛、丙酮、異丙醇和正丁醇的頂空-氣相色譜檢驗方法
- (醫(yī)療藥品)藥店拆零藥品記錄表
- 歐標(biāo)電纜外徑表
- 現(xiàn)澆箱梁盤扣式現(xiàn)澆支架施工方案(通過專家論證)
- 熱質(zhì)交換課第05講(習(xí)題課1)
- 《美麗的集郵冊》朗誦
- 直線與圓錐曲線之角形面積問題
- 電力行業(yè)顧客滿意度測評辦法
評論
0/150
提交評論