EventBus可以代替Android传统的Intent,Handler,Broadcast或接口函数,在Fragment,Activity,Service线程之间传递数据,执行方法,是依据观察者设计模式设计的;

在工程目录下的build.gradle 下添加依赖:

compile 'org.greenrobot:eventbus:3.0.0'
然后在你需要传播数据源的地方写上:

PayConfirmEvent payConfirmEvent = new PayConfirmEvent();payConfirmEvent.setAddressBean(mAddressBeanList.get(position));EventBus.getDefault().post(payConfirmEvent);
event模型要记住针对自己的数据去封装

然后接受方的代码:

在create方法中注册

EventBus.getDefault().register(this);
当然如果是一般类可以在你特定的方法中这样注册

if (!EventBus.getDefault().isRegistered(this)) {    EventBus.getDefault().register(this);}
这样就可以避免注册多次

覆写onEvent方法;框架会通过注解和反射拿到

payConfirmEvent
然后就可以在指定的ui线程刷新ui了,是不是超级方便啊,记得一定要记得最后取消注册额

@Subscribe(threadMode = ThreadMode.MAIN)public void onEvent(PayConfirmEvent payConfirmEvent) {    AddressBean addressBean = payConfirmEvent.getAddressBean();    int pickUpStatel = payConfirmEvent.getPickUpStatel();    if (addressBean != null) {        tvReceiver.setText(addressBean.getUname());        tvReceiverContact.setText(addressBean.getContact_way());        tvReceiverAddress.setText(mHelper.code_getProvice(m_Db, String.valueOf(addressBean.getProvince())) +                mHelper.code_getCity(m_Db, String.valueOf(addressBean.getCity())) +                mHelper.code_getDistrict(m_Db, String.valueOf(addressBean.getArea())) + addressBean.getWhere());        llHasAddress.setVisibility(View.VISIBLE);        tvNoAddress.setVisibility(View.GONE);        hasAddress = true;
@Overrideprotected void onDestroy() {    EventBus.getDefault().unregister(this);    super.onDestroy();}

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. Android(安卓)WebView 与 原生的交互
  3. Android(安卓)四种异步操作UI界面的方法
  4. Android(安卓)Root方法原理解析及Hook(四) GingerBreak
  5. Android在非UI线程中更新UI的方法
  6. Android中从网络获取数据的方法
  7. Android(安卓)Cocos2d-x游戏集成友盟社会化组件分享功能
  8. 【移动开发】Android游戏开发SurfaceView应用----手指发动小球(小
  9. android 日记log保存到本地简单方法

随机推荐

  1. centos 磁盘管理详解
  2. f-string 竟然能有 73 个例子,我要学习下
  3. 7 个省时高效的 pytest 特性和插件
  4. Android中JSON解析
  5. 再来 6 个例子教你重构 Python 代码
  6. Django2.0+小程序技术打造微信小程序助手
  7. 再次为王!Python 是 2020 年度编程语言
  8. android用jdbc多线程操作sqlite小结
  9. C语言的一些练习以及自己写一个猜数字小
  10. 算法面试专题课(Java版)