Android EventBus的使用

本文介绍了Android EventBus作为事件订阅发布的轻量级框架,用于简化应用内组件间的通讯。详细阐述了EventBus的定义、作用、使用方法、工作机制,以及post和postSticky方法的区别,并详细解析了EventBus的消息处理模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                              EventBus(面试)

1.EventBus的的定义

 事件订阅发布的轻量级框架。是一个android端优化的publish,可以简化我们的通讯过程。

2.EventBus的作用

实现两个fragment之间的通讯,activity和fragment的交互。简化通讯过程。流程跨多个界面。推送

3.EventBus的使用

添加依赖

 compile 'org.greenrobot:eventbus:3.0.0'

定义事件

public class MessageEvent{
    private String message;
    public  MessageEvent(String message){
        this.message=message;
    }
 
    public String getMessage() {
        return message;
    }
 
    public void setMessage(String message) {
        this.message = message;
    }
}

注册解注册(在需要订阅和接受消息的界面初始化中注册,销毁界面时解注册)

     EventBus.getDefault().register(this);
    //接收事件
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void fresh(MessageEvent messageEvent) {
        M2Log.d("MessageEvent -----------------> MainActivity");
    }
  EventBus.getDefault().post(new MessageEvent("这里是发送消息"));

 

 

4.EventBus的机制

是一个观察者模式

所有注册了EventBus的页面就是订阅者,能够收到消息发送者通过post发送的消息,定义的类就是消息。

 

5.post和postSticky的区别

post:EventBus的注册页面只能收到注册之后发送的发送的消息

postSticky:EventBus的注册页面注册之前只收发送的消息都能收到

      6.EventBus消息处理模型

POSTING:(默认) 事件发送的线程就是事件处理的线程

MIAN:主线程直接调用,可以直接更新UI,但是要快速返回,否则容易造成线程堵塞

MIAN_ORDERED:相当于吧MAIN模型封装成序列,然后按照顺序处理

BACKGROUND:在后台线程处理,如果不是主线程发布消息,就在发布线程处理,如果是主线程发布消息,就在后台线程处理。

ASYCNO:开启一个单独的线程调用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值