Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> EventBus簡單使用教程

EventBus簡單使用教程

編輯:關於Android編程

大家好! 首先申明一下,本人是一名初級Android程序員,剛接觸EventBus(3.0的用法)有什麼說的不對的地方還請大神指點一二。此文章是面向能力不強,對於大神級別就Easy了,廢話不多說直接進入正題。   什麼是EventBus   EventBus是一款針對Android優化的發布/訂閱事件總線。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,線程之間傳遞消息.優點是開銷小,代碼更優雅。   1.EventBus初步體驗 \   程序運行輸出日志如下   \   EventBus.getDefault().register(this); 意思是注冊當前界面所有方法 EventBus.getDefault().post("Hello EventBus"); 意思是尋找當前界面參數為一個的方法並且是被@Subscribe注解,並執行此方法。當執行發送事件post在線程1裡執行,那麼事件方法也在線程1裡執行. 聲明:定義事件方法必須是public,不能有使用修飾符否則會報錯。 2.線程模型模式   在EventBus的事件處理函數中需要指定線程模型,即指定事件處理函數運行所在的線程。EventBus中通常有四種線程模型,分別是PostThread(默認)、MainThread、BackgroundThread與Async。   PostThread:如果使用事件處理函數指定了線程模型為PostThread,那麼該事件在哪個線程發布出來的,事件處理函數就會在這個線程中運行,也就是說發布事件和接收事件在同一個線程。   MainThread:如果使用事件處理函數指定了線程模型為MainThread,那麼不論事件是在哪個線程中發布出來的,該事件處理函數都會在UI線程中執行。該方法可以用來更新UI,但是不能處理耗時操作。   BackgroundThread:如果使用事件處理函數指定了線程模型為BackgroundThread,那麼如果事件是在UI線程中發布出來的,那麼該事件處理函數就會在新的線程中運行,如果事件本來就是子線程中發布出來的,那麼該事件處理函數直接在發布事件的線程中執行。在此事件處理函數中禁止進行UI更新操作。   Async:如果使用事件處理函數指定了線程模型為Async,那麼無論事件在哪個線程發布,該事件處理函數都會在新建的子線程中執行。同樣,此事件處理函數中禁止進行UI更新操作。   接下來請看示例 \   輸出日志如下: \   發送事件在新的一個線程中執行 \   輸出日志如下: \     3.事件優先接收proiority使用 \ \      
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved