您的位置:首页 > 其它

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.简单功能就实现了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: