码迷,mamicode.com
首页 > 其他好文 > 详细

EventBus 引用

时间:2019-01-05 10:14:50      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:null   uil   配置   maven   reg   16px   this   repo   包名   

1、功能简述

全局事件(数据)传递,可减少一步一步传递数据的繁琐步骤。

2、gradle接入

(1)module的gradle添加加速索引,不同模块不能包名相同,不然会冲突。

android {
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
//EventBus 加速索引
arguments.put(‘eventBusIndex‘, ‘org.eventbus.MyEventBusIndex‘)
}
}
}
}

(2)module的gradle接入插件

implementation(‘org.greenrobot:eventbus:3.0.0‘)
annotationProcessor(‘org.greenrobot:eventbus-annotation-processor:3.0.1‘)

(3)project的gradle中

dependencies {
  classpath "com.neenbedankt.gradle.plugins:android-apt:1.8"
  // ButterKnife R2支持
  
classpath ‘com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT‘

}
allprojects {
  repositories {
    google()
    mavenCentral()
    jcenter()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
  }
}

3、初始化

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

4、使用方法

 (1)接受配置

@Subscribe(sticky = true)
public void onEventBusReceived(@NonNull EventBusDataBean data){
  // options
}
发送事件(数据):
EventBus.getDefault().postSticky(obj); //可用于加速索引
EventBus.getDefault().post(obj); //常规

备注:sticky = true 如果已有对应的数据,在注册时,会马上收到EventBus数据

(2)注册于解除注册

使用时,需要注册才能接收到数据:

EventBus.getDefault().register(this);

不使用时,解除注册:

EventBus.getDefault().unregister(this);

判断是否注册:

EventBus.getDefault().isRegistered(this);

EventBus 引用

标签:null   uil   配置   maven   reg   16px   this   repo   包名   

原文地址:https://www.cnblogs.com/cnmly/p/10223443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!