本篇文章给大家分享的是有关EventBus 3.0.0如何在Android应用中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<强> EventBus框架强>
EventBus是一个通用的叫法,例如谷歌出品的番石榴,番石榴是一个庞大的库,EventBus只是它附带的一个小功能,因此实际项目中使用并不多。用的最多的是greenrobot/EventBus,这个库的优点是接口简洁,集成方便,但是限定了方法名,不支持注解。另一个库广?奥托修改自番石榴,用的人也不少,所以今天我们研究的目标是greenrobot的EventBus。
1, EventBus3.0.0是最新的版本。
2, EventBus是Android发布/订阅事件总线,可简化活动,片段,线程,服务等组件间的消息传递。
3,可替代意图,处理程序,广播,接口等传统方案,更快,代码更小,50 k左右的jar包,代码更优雅,彻底解耦。
github地址:https://github.com/greenrobot/EventBus
应用插件:& # 39;com.android.application& # 39; android { compileSdkVersion 24 buildToolsVersion“24.0.3" defaultConfig { applicationId“com.eventbus.app" minSdkVersion 14 targetSdkVersion 24 versionCode 1 versionName“1.0”; } buildTypes { 释放{ minifyEnabled假 proguardFiles getDefaultProguardFile (& # 39; proguard-android.txt& # 39;), & # 39; proguard-rules.pro& # 39; } } } 依赖关系{ 编译fileTree (dir: & # 39;填词# 39;,包括:[& # 39;* . jar # 39;]) 编译& # 39;com.android.support: appcompat-v7:24.2.1& # 39; 编译& # 39;org.greenrobot: eventbus: 3.0.0 # 39; }
<强>注册事件强>
EventBus.getDefault ()。登记(这);
<>强取消注册强>
EventBus.getDefault ()。注销(这);
<强>发送数据强>
EventBus.getDefault ()。邮报》(“我发射了“);
包com.eventbus.app; 进口android.os.Bundle; 进口android.support.v7.app.AppCompatActivity; 进口android.view.View; 进口android.widget.Toast; 进口org.greenrobot.eventbus.EventBus; 进口org.greenrobot.eventbus.Subscribe; 进口org.greenrobot.eventbus.ThreadMode; 公开课MainActivity延伸AppCompatActivity { @Override 保护空白> @Subscribe (threadMode=ThreadMode.POSTING) 公共空间>包com.eventbus.app; 进口android.os.Bundle; 进口android.support.v7.app.AppCompatActivity; 进口android.util.Log; 进口android.view.View; 进口org.greenrobot.eventbus.EventBus; 进口org.greenrobot.eventbus.Subscribe; 进口org.greenrobot.eventbus.ThreadMode; 公开课MainActivity延伸AppCompatActivity { @Override 保护空白>包com.eventbus.app; 进口android.os.Bundle; 进口android.support.v7.app.AppCompatActivity; 进口android.util.Log; 进口android.view.View; 进口org.greenrobot.eventbus.EventBus; 进口org.greenrobot.eventbus.Subscribe; 进口org.greenrobot.eventbus.ThreadMode; 公开课MainActivity延伸AppCompatActivity { @Override 保护空白> @Subscribe (threadMode=threadMode。主要粘性=true) 公共空间>包com.eventbus.app; 进口android.content.Intent; 进口android.os.Bundle; 进口android.support.v7.app.AppCompatActivity; 进口android.util.Log; 进口android.view.View; 进口org.greenrobot.eventbus.EventBus; 公开课MainActivity延伸AppCompatActivity { @Override 保护空白>包com.eventbus.app; 进口android.support.v7.app.AppCompatActivity; 进口android.os.Bundle; 进口android.util.Log; 进口org.greenrobot.eventbus.EventBus; 进口org.greenrobot.eventbus.Subscribe; 进口org.greenrobot.eventbus.ThreadMode; 公开课Activity2延伸AppCompatActivity { @Override 保护空白> @Documented @Retention (RetentionPolicy.RUNTIME) @Target ({ElementType.METHOD}) @ interface公共订阅{ ThreadMode ThreadMode()默认ThreadMode.POSTING;/* * *如果属实,提供最近棘手的事件(发布 * {@link EventBus # postSticky(对象)})用户事件(如果可用)。 */布尔粘性()默认的错误;/* *用户优先级来影响事件交付的顺序。 *在同一个交付线程({@link ThreadMode}),较高优先级的用户将获得事件之前 *其他低优先级。默认优先级为0。注:优先级*不*影响的顺序 *中交付用户使用不同的{@link ThreadMode}年代!*/int优先()默认0; }EventBus 3.0.0如何在Android应用中使用