EventBus事件总线的简单使用
2018-03-27 09:54
288 查看
1.导包
compile 'org.greenrobot:eventbus:3.0.0'
2.加入混淆
混淆规则如下-keepattributes *Annotation*-keepclassmembers class ** {@org.greenrobot.eventbus.Subscribe <methods>;}-keep enum org.greenrobot.eventbus.ThreadMode { *; }# Only required if you use AsyncExecutor-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {<init>(java.lang.Throwable);}
3.第一个activity
public class MainActivity extends AppCompatActivity {TextView textView;TextView kaiqi;Button sub;Button tiao;int tag = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView) findViewById(R.id.show);textView.setText("mainactivity");kaiqi = (TextView) findViewById(R.id.kaiqi);sub = (Button) findViewById(R.id.sub);tiao = (Button) findViewById(R.id.tiao);tiao.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this , Activity2.class));}});sub.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (tag == 0) {EventBus.getDefault().register(MainActivity.this);kaiqi.setText("EventBus注册订阅");tag = 1;} else if (tag == 1){EventBus.getDefault().unregister(MainActivity.this);kaiqi.setText("EventBus取消注册订阅");tag = 0;}}});}@Subscribe(threadMode = ThreadMode.MAIN)public void onMoonEvent(Message msg) { //收到发布者发布的消息if (msg.what == 1) {String lr = (String) msg.obj;textView.setText(lr);}}@Subscribe(threadMode = ThreadMode.POSTING , sticky = true) //sticky黏性事件,可以后订阅查看 发布者先发布的消息public void onMoonStickyEvent(Message msg){int waht = msg.what; //如果eventbus一多起来,想要指定的eventbus接收可以用msg.what判断区分if (waht == 2) {textView.setText(msg.obj.toString());}}@Overrideprotected void onDestroy() {super.onDestroy();EventBus.getDefault().unregister(MainActivity.this);}}
4.第二个activity
public class Activity2 extends AppCompatActivity {TextView show;Button fa;Button nian;int i = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_2);show = (TextView) findViewById(R.id.show2);show.setText("activity2");fa = (Button) findViewById(R.id.famsg2);nian = (Button) findViewById(R.id.nianx);fa.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Message msg = new Message();msg.what = 1;msg.obj = "欢迎来到我的博客";EventBus.getDefault().post(msg);finish();}});nian.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Message msg = new Message();msg.what = 2;msg.obj = "这是一个黏性事件";EventBus.getDefault().postSticky(msg);finish();}});}}
5.简单功能就实现了
相关文章推荐
- 安卓Android事件总线EventBus简单使用
- Android事件总线纷发库EventBus的使用方法
- Android事件总线分发库的使用EventBus(和Otto一样,只是效率高点)
- 事件总线分发库EventBus的使用
- EventBus使用详解-2-用RxJava实现事件总线(Event Bus)
- 使用事件总线框架EventBus和Otto
- 事件总线分发库EventBus框架的简单使用
- 事件总线 EventBus 3.0 简单运用
- Android神器:高效事件通信总线EventBus,简例讲解,进阶中高级工程师必看!(附带碎片Fragment高级使用技巧)
- 关于事件总线EventBus的使用
- Android学习系列(43)--使用事件总线框架EventBus和Otto
- Android学习系列(43)--使用事件总线框架EventBus和Otto
- Android事件总线——EventBus的使用
- 事件总线EventBus Android开源库的使用
- 事件总线-EVENTBUS的使用
- 使用RxJava实现的超简单事件总线RxBus
- Android事件总线EventBus 3.0的基本使用
- 事件总线 eventbus-3.0.0-beta1.jar 使用
- 使用事件总线eventbus替代startactivityforresult
- 简单并快乐着,带有语法强类型检查的事件总线(EventBus)框架完善篇