溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android 消息分發(fā)使用EventBus的實例詳解

發(fā)布時間:2020-09-03 21:50:25 來源:腳本之家 閱讀:205 作者:lqh 欄目:移動開發(fā)

Android 消息分發(fā)使用EventBus的實例詳解

1. AndroidStudio使用

dependencies {

  //最新版本
  compile 'org.greenrobot:eventbus:3.0.0' 

  //可以翻倍提高EventBus使用效率
  provided 'de.greenrobot:eventbus-annotation-processor:3.0.0-beta1'

}

2. 在基類Activity中配置

/**
 * Activity基類
 */
protected EventBus eb;

 @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //單例模式獲取到實例并注冊
    eb = EventBus.getDefault();
    eb.register(this);

  }


 @Override
  protected void onDestroy() {
    //反注冊
    eb.unregister(this);
    super.onDestroy();
  }


 //主線程
 @Subscribe(threadMode = ThreadMode.MAIN)
 public void onMainEvent(EventBean event) {
 }

 //主線程 粘性(比如傳遞intent使用)
 @Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
 public void onMainStickEvent(EventBean event) {
 }

 //后臺
 @Subscribe(threadMode = ThreadMode.BACKGROUND)
 public void onBackgroundEvent(EventBean event) {
 }

 //重新開啟一個線程來執(zhí)行
 @Subscribe(threadMode = ThreadMode.ASYNC)
 public void onAsyncEvent(EventBean event) {
 }

一般情況下,常用重寫onMainEvent ( ) 方法即可。

3. 創(chuàng)建自定義消息實體

//根據(jù)不同需求自定義
/**
 * 自定義Event消息
 */
public class EventBean {

  public int id;//類型標識

  public Object data;//數(shù)據(jù)對象

  //省略constructor & getter & setter
}

4. 發(fā)送消息

繼承自基類Activity后:

eb.post(new EventBean(1, "data"));

//粘性
eb.postSticky(new EventBean(1, "data"));

5. 消息處理

根據(jù)數(shù)據(jù)處理的需求重寫基類的4個方法即可。

以上就是Android 消息分發(fā)使用EventBus的實例,如有疑問請留言或者到本站社區(qū)交流討論,本站關于Android的文章還有很多希望大家搜索查閱,謝謝大家對本站的支持!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI