Android EventBus基础入门及源码分析

本文介绍了Android EventBus的基础知识和源码分析,包括EventBus的作用、基本使用方法,以及如何通过反射机制分发事件。还提供了一些相关资源链接和Android相关文章推荐。
摘要由CSDN通过智能技术生成

—— 迷茫是什么?迷茫是大事干不了,小事不想干。能力配不上欲望,才华配不上梦想。

目录

前言

一、简介

​二、基本使用

三、源码分析

四、内容推荐


前言

时隔多年,那些曾经学过且用过的知识早已记忆模糊。如果不反复研究学习,使用起来也会很生涩,如新知识一样。本编为巩固EventBus所写。一个人为什么要努力,因为喜欢的东西很贵想去的地方都很远,想爱的人很完美。

一、简介

官方文档:https://greenrobot.org/eventbus/documentation/

Github:https://github.com/greenrobot/EventBus

(1)是什么:是一个事件发布/订阅的轻量级框架。基于观察者模式,实现组件间的通讯。代码简洁且解耦。

(2)有什么用:可以替代传统的Intent,Handler,Broadcast或接口函数。

​二、基本使用

(1)添加依赖  (不是最新) 基于以前学过的版本

implementation 'org.greenrobot:eventbus:3.0.0'

(2)定义消息事件(可以配置传递参数)

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

(3)定义接收事件的线程方法(发送的事件,将在该方法中收到)

@Subscribe(threadMode = ThreadMode.MAIN)  
public void onMessageEvent(MessageEvent event) {/* Do something */};

(4)EventBus初始化 (与广播相似,需要订阅与取消)

 @Override
 public void onStart() {
     super.onStart();
     EventBus.getDefault().register(this);
 }

 @Override
 public void onStop() {
     super.onStop();
     EventBus.getDefault().unregister(this);
 }

(5)发送事件

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

(6)添加混淆

-keepattributes *Annotation*
-keepclassmembers class * {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
 
# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
    <init>(java.lang.Throwable);
}

简单的整理了一下 。正确姿势参考官方文档。

三、源码分析

(1)EventBus.getDefault()

* 单例模式 双重效验锁  线程安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值