EventBus框架的使用

EventBus框架集成步骤: 1、AS添加EventBus框架依赖: dependencies { compile 'org.greenrobot:eventbus:3.0.0' } 2、使用步骤: public class DemoActivity extends FragmentActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo); //EventBus注册 EventBus.getDefault().register(this); ... ...} @Override protected void onDestroy() { super.onDestroy(); //EventBus取消注册 EventBus.getDefault().unregister(this); }//EventBus消息处理方法。 @Subscribe(threadMode = ThreadMode.MAIN) public void onShowMessageEvent(EventBusMessageModel eventBusMessageModel) {String type = eventBusMessageModel.getType(); }}//自定义的消息结构 public class EventBusMessageModel{private String type; private Object passValue; public EventBusMessageModel(String type, Object passValue) { this.type = type; this.passValue = https://www.it610.com/article/passValue; }public String getType() { return type; }public void setType(String type) { this.type = type; }public Object getPassValue() { return passValue; }public void setPassValue(Object passValue) { this.passValue = passValue; } }在需要发送的地方直接调用: EventBus.getDefault().post(new EventBusMessageModel("type","任意Object对象")); 其中EventBusMessageModel是自定义的。根据自己需要设置即可。 3、应用场景: EventBus框架其主要的作用是解耦。之前Activity与Activity、Activity与Fragment、跨Activity刷新UI等场景下, 消息、数据等的传递用接口等方式。接收方和发起方的耦合性太强。项目前期感觉还不明显, 但当到了项目后期维护阶段。就会特别头疼。 EventBus类似于BroadcastReceiver,但比BroadcastReceiver更灵活。不会受限于Context,Intent; 像一个独立于项目的消息、数据监听响应者。


    推荐阅读