EventBus_Demo

来源:互联网 发布:软件工程项目案例 编辑:程序博客网 时间:2024/06/05 00:28

EventBus github地址:https://github.com/greenrobot/EventBus

详细介绍EventBus使用的地址(转载地址):http://www.jianshu.com/p/da9e193e8b03

Eventbus作用是取代传统的传递数据方式, Intent,BroadcastReceiver,Handler等。

优点:当业务逻辑复杂时,也能让代码保持逻辑清晰。


package com.example.administrator.myapplication;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import org.greenrobot.eventbus.EventBus;import org.greenrobot.eventbus.Subscribe;import org.greenrobot.eventbus.ThreadMode;public class MainActivity extends AppCompatActivity {    private final String TAG = "MainActivity";    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // 注册        EventBus.getDefault().register(this);        // 发布        EventBus.getDefault().post(new MessageEvent("1"));    }    // 自定义方法名称, 必须要用public修饰, 否则运行时会挂    @Subscribe(threadMode = ThreadMode.POSTING)    public void subscribe(MessageEvent event) {        Log.d(TAG, event.getId() + " : " + Thread.currentThread());    }    @Subscribe(threadMode = ThreadMode.MAIN)    public void xxx(MessageEvent event) {        Log.d(TAG, event.getId() + " : " + Thread.currentThread());    }    @Subscribe(threadMode = ThreadMode.BACKGROUND)    public void ddd(MessageEvent event) {        Log.d(TAG, event.getId() + " : " + Thread.currentThread());    }    @Subscribe(threadMode = ThreadMode.ASYNC)    public void asyc(MessageEvent event) {        Log.d(TAG, event.getId() + " : " + Thread.currentThread());    }    @Override    protected void onDestroy() {        super.onDestroy();        // 解除        EventBus.getDefault().unregister(this);    }    // 内部类, 方便观察而创建    class MessageEvent{        private String id;        public MessageEvent(String id) {            this.id = id;        }        public String getId() {            return id;        }        public void setId(String id) {            this.id = id;        }    }}
0 0
原创粉丝点击