EventBus基本使用的心得

自己看GitHub使用说的比较概念,自己总结一个简单的使用的demo供大家更好的理解和学习一下
1.使用框架

 implementation 'org.greenrobot:eventbus:3.1.1' //EventBus

2.定义一个自己是用的静态的messageEvent类

public static class MessageEvent { /* Additional fields if needed */ }

我自己的定义的demo 类如下

public class MessageEvent {

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getMag() {
        return mag;
    }

    public void setMag(String mag) {
        this.mag = mag;
    }

    public MessageEvent(int id, String mag) {
        this.id = id;
        this.mag = mag;
    }

    public int id;
    public String mag;
}

我是在一个项目的Activity下面包含着两个fragment应用这个,EventBus在这个demo最主要的作用就是刷新,只是提供一个具体的是使用例子
3.onCreate()方法中首先注册EventBus,onDestroy()方法中取消注册。这个没有什么好说的

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

4.写具体想要调用的方法,这个方法就是我想在主Activity中调用两个子fragment刷新页面数据,get…()两个方法获取的是接口的数据

 private int REFREASHDATA = 101;
  @Subscribe(threadMode = ThreadMode.MAIN)
    public void onGetMessage(MessageEvent messageEvent) {
        if (messageEvent.id == REFREASHDATA) {
            Log.e("onGetMessage", "111111111");
            incomeFragment.getFarmInputsData();
            mOutcomeFragment.getFarmOutputsData();
        }
    }

5.调用这个事件
官方

Post events:

 EventBus.getDefault().post(new MessageEvent());

我的使用

 void backToActivity() {
        EventBus.getDefault().post(new MessageEvent(101, ""));
        finish();
    }

整体思想就是一个观察者在需要的时候发送一个消息给主要的线程,随时响应消息需求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值