EventBus 3.0.0如何在Android应用中使用

  介绍

本篇文章给大家分享的是有关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

 EventBus 3.0.0如何在Android应用中使用“> </p> <p> </p> <p>在模块的构建。gredle文件中依赖的标签中添加</p> <p>编译& # 39;org.greenrobot: eventbus: 3.0.0 # 39; </p> <p>例如</p> <pre class=应用插件:& # 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应用中使用