Eventbus简单使用

本文介绍了Android中Eventbus的使用方法,包括依赖引入、混淆配置、接收和发送事件的步骤,以及注意事项。强调了注册与注销的匹配以及避免名称冲突的策略。同时提供了MessageEvent消息类的示例。
摘要由CSDN通过智能技术生成

Eventbus使用

使用方式:

1、引入
module中:

 implementation("org.greenrobot:eventbus:3.3.1")//eventbus消息总线

rules.pro中混淆时

#-------eventbus----------
-keepattributes *Annotation*
-keepclassmembers class * {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }

# If using AsyncExecutord, keep required constructor of default event used.
# Adjust the class name if a custom failure event type is used.
-keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent {
    <init>(java.lang.Throwable);
}

 # Accessed via reflection, avoid renaming or removal
-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl
#-------eventbus----------

2、使用
activity 或fragment中

》》》》接收方

onCreate()中添加“注册”:
  @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //注册前判断是否注册。没有,则注册
        if (!EventBus.getDefault().isRegistered(this)) {
            EventBus.getDefault().register(this);
        }
    }

onDestroy()中添加“注销”:

 @Override
    public void onDestroy() {
        super.onDestroy();
        //注销前判断是否已经注册
        if (EventBus.getDefault().isRegistered(this)) {
            EventBus.getDefault().unregister(this);
        }
    }

接收message,指明线程Mode:

 @Subscribe(threadMode = ThreadMode.MAIN)
    public void onMessageEvent(MessageEvent event) {
        String message = event.getMessage();
        if (!TextUtils.isEmpty(message)) {
            mFiberValue.setText(message);
        }
    }

》》》》发送方:

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

MessageEvent:

/***
 * 消息类
 */
public class MessageEvent {
    String message;

    public MessageEvent(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

注意的问题:
1、多人使用时,注意避免名称重复问题(可以指定规则,比如开发者名字简称+消息功能类名)
2、注意遵循注册取消成对出现,复杂情况需要认真检测是否遗漏或者已经注销的activity或fragment导致的不成对情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值