欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年07月28日 09:44:00   投稿:lqh  
這篇文章主要介紹了Android 消息分發(fā)使用EventBus的實(shí)例詳解的相關(guān)資料,在項(xiàng)目中用了許多Handler和broadcast導(dǎo)致代碼冗余,顯得雜亂無(wú)章,這里使用EventBus來(lái)實(shí)現(xiàn)相同的功能,需要的朋友可以參考下

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

1. AndroidStudio使用

dependencies {

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

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

}

2. 在基類(lèi)Activity中配置

/**
 * Activity基類(lèi)
 */
protected EventBus eb;

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

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

  }


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


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

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

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

 //重新開(kāi)啟一個(gè)線(xiàn)程來(lái)執(zhí)行
 @Subscribe(threadMode = ThreadMode.ASYNC)
 public void onAsyncEvent(EventBean event) {
 }

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

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

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

  public int id;//類(lèi)型標(biāo)識(shí)

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

  //省略constructor & getter & setter
}

4. 發(fā)送消息

繼承自基類(lèi)Activity后:

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

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

5. 消息處理

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

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

相關(guān)文章

最新評(píng)論