美文网首页
EventBus的简单使用

EventBus的简单使用

作者: townof1997 | 来源:发表于2019-06-19 18:29 被阅读0次

EventBus出现的原因在于解决UI的同步更新的问题,比如我的某个Activity界面需要显示上传的图片(比如头像),但是修改上传的头像时,进入上传头像页面,修改后,退出到显示页面,显示页面要及时更新,这就用到了同步的情况,这个时候就需要EventBus来操作;
代码及步骤如下:
1,在app.gradle的dependencies { }中加入implementation 'org.greenrobot:eventbus:3.0.0';

implementation 'org.greenrobot:eventbus:3.0.0'

2,创建bean类如下:

public class TextEvent {
    public String msg;
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public TextEvent(String msg) {
        this.msg = msg;
    }
}

可以不用set,get方法;
3,在使用EventBus的activity类的OnCreate方法中加入:EventBus.getDefault().register(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event_bus3_msg);
        EventBus.getDefault().register(this);
    }

4,通过点击事件注册EventBus的post事件

public void getEventBusData(View view) {
        TextEvent event = new TextEvent("测试来自EventBus的数据");
        event.setMsg("EventBus");
        EventBus.getDefault().post(event);
    }

5,更新UI的代码如下:需要加入注解:@Subscribe(threadMode = ThreadMode.MAIN)(方法名可以随便命名)

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void xx(TextEvent event) {//EventBus3.0.0可以随便取方法名,2.x版本需要onEvent//onDataSynEvent
        Toast.makeText(this, event.msg+"&&"+event.getMsg(), Toast.LENGTH_SHORT).show();
        // initUserInfo();更新UI的方法
        // 还可以进行网络请求比如更新UI的网络请求方法
        // UpdateUserInfo(final Context context)
    }

6,在销毁的方法里面加入EventBus.getDefault().unregister(this);

    @Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }

相关文章

  • EventBus3.0使用(一)

    3Steps简单使用EventBus3.0 在使用EventBus 先在Gradle 添加依赖 定义Event事件...

  • EventBus简单使用

    一、简单介绍 EventBus是一种能够简化各组件间的通信,通过解耦发布者和订阅者简化Android事件传递用以代...

  • EventBus 简单使用

    简单记录下EventBus的使用: setup1 接收页面 setup2 接收页面 setup3 setup4 ...

  • EventBus简单使用

    概述 EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化Android事件传递,这...

  • EventBus简单使用

    Gradle:compile 'org.greenrobot:eventbus:3.0.0' 2.先注册要使用的A...

  • Android中EventBus的进阶使用

    Android中EventBus的进阶使用 EventBus使用一-基础 1 概述 前一篇给大家简单演示了Even...

  • Android EventBus源码分析

    一、先看看EventBus的简单使用 1. 导入eventbus 2. MainActivity 3. Commo...

  • EventBus简单的使用

    前言:因为用到了第三方SDK,想用Bundle传递数据,发现里面的类没有序列化根本不行啊,所以就用了EventBu...

  • EventBus的简单使用

    EventBus 做个阶段总结 项目上用的越来越多了 之前项目上一直用的是广播 换成eventbus之后感觉世...

  • EventBus 的简单使用

    本篇文章主要介绍以几下个知识点:使用 EventBus 的步骤一个简单的demo 1. EventBus 简介 *...

网友评论

      本文标题:EventBus的简单使用

      本文链接:https://www.haomeiwen.com/subject/qmqlqctx.html