EventBus的基本使用步骤

为何要使用EventBus

当咱们进行项目开发的时候,每每是须要应用程序的各组件间进行通讯,好比在子线程中进行请求数据,当数据请求完毕后经过Handler或者是广播通知UI,git

一般两个Activity或者Fragment之家能够经过Listener进行通讯等等。但当咱们的项目愈来愈复杂,使用Intent、Handler、Broadcast进行模块间通讯时,代码量大,并且高度耦合。而EventBus的出现就是为了简化各组件间的通讯,让咱们的代码书写变得简单,有效的分离事件发送方和接收方github

EventBus的基本使用步骤:

第一步:添加依赖

compile 'org.greenrobot:eventbus:3.0.0'

 

第二步:定义消息事件类

public class MessageEvent{
private String message;
public  MessageEvent(String message){
    this.message=message;
}

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}
}

 

第三步:注册和解除注册 (在FirstActivity的onCreate()方法和onDestory()方法里,进行注册EventBus和解除注册。该Activity用于接收事件)

public class FirstActivity extends AppCompatActivity {


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_activity);
   //注册
EventBus.getDefault().register(this);

}



    //接收消息
@Subscribe(threadMode = ThreadMode.MAIN)
public void Event(MessageEvent messageEvent) {
mText.setText(messageEvent.getMessage());
}

@Override
protected void onDestroy() {
super.onDestroy();
        //解除注册
if(EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this);
}
}

}

 

第四步:发送消息事件 (在SecondActivity里去进行事件的发送)。

public class SecondActivity extends AppCompatActivity {
private Button mButton2;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
mButton2=(Button) findViewById(R.id.btn2);

mButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//发送消息
EventBus.getDefault().post(new MessageEvent("欢迎你们浏览我写的博客"));
finish();
}
});
}


} 

 

最后

附上 EventBus Github地址微信

关于我

私人博客ide

技术微信公众号:infree6 或者直接扫码post

相关文章
相关标签/搜索