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

相關文章
相關標籤/搜索