EventBus

我的EventBus理解:

1.EventBus概念
Eventbus是一个事件发布和订阅的处理框架

1.EventBus如何获取呢?

在app模块下的build.gradle文件依赖项中添加如下
compile 'org.greenrobot:eventbus:3.0.0'

EventBus的基本使用

1.新建一个事件类型 EventMessage
2.注册当前对象为事件订阅者
EventBus.getDefault().register(this);

3.新建一个订阅者事件处理函数

@Subscribe
pubic void HandleEvent(Event Message){
处理
]


4.不用的时候要反注册 取消订阅
EventBus.getDefault().unRegister(this);


订阅者函数所在的线程模型

Main 接受者方法是在主线程中执行

Posting 接受者方法执行的线程和发布者是在同一线程

Aysnc  接收者的订阅方法永远执行在新的线程中

Background 如果发布者发布消息是在主线程中,那么订阅者函数在子线程中执行,如果在子线程中发布消息,那么订阅者函数在与发布消息
相同的线程中执行


5.事件的优先级

1.优先级高的先执行
2.可以通过cancelDelivyEvent来终止事件的传递


6.Eventbus在Apt注解的预处理框架中使用

1.在Project 工程目录下的build.gradle文件中添加 apt注解框架的插件包

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

2.需要在使用Eventbus模块下的buld.gradle文件中添加如下代码

apply plugin: 'com.neenbedankt.android-apt'
dependencies {
    compile 'org.greenrobot:eventbus:3.0.0'
    apt 'org.greenrobot:eventbus-annotation-processor:3.0.1'
}
apt {
    arguments {
       eventBusIndex "com.zoushang.rensheng.dianfeng.SubscrieIndex"
    }
}

3.我们需要自定义一个Application
在Oncreate方法中加入如下代码

EventBus.builder().addIndex(new SubscrieIndex()).installDefaultEventBus();

posted @ 2016-12-16 14:16  utf  阅读(173)  评论(0编辑  收藏  举报