首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >EventBus简单使用

EventBus简单使用

作者头像
yechaoa
发布2022-06-10 12:14:47
发布2022-06-10 12:14:47
21500
代码可运行
举报
文章被收录于专栏:移动开发专栏移动开发专栏
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
复制
compile 'org.greenrobot:eventbus:3.0.0'

EventBus使用起来可以说是非常简单,而且是轻量级的,目前github的start已经15k+了

根据官网说明,只需要三步即可完成事件通知

1.注册、移除注册

建议放在onCreate和onDestory中,因为跳转的话会走onStop,再通知的话会出现接收不到消息的情况,虽然可以用postSticky,但是能避免的为什么不避免呢

代码语言:javascript
代码运行次数:0
运行
复制
@Override
 public void onCreate() {
     super.onStart();
     EventBus.getDefault().register(this);
 }

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

2.发布消息

只需要一行代码,非常简便

代码语言:javascript
代码运行次数:0
运行
复制
EventBus.getDefault().post("SecondActivity发起的通知");

3.重写方法接收参数

代码语言:javascript
代码运行次数:0
运行
复制
@Subscribe
    public void onEventMainThread(String event) {
        mTextView.setText(event);
        Toast.makeText(this, event, Toast.LENGTH_SHORT).show();
    }

到这里一个通知就完了。。

重写的方法要加上@Subscribe才行

也可以这样写

代码语言:javascript
代码运行次数:0
运行
复制
@Subscribe(threadMode = ThreadMode.MAIN)

直接指定方法执行的线程

ThreadMode有四种

代码语言:javascript
代码运行次数:0
运行
复制
1 ThreadMode: POSTING
2 ThreadMode: MAIN
3 ThreadMode: BACKGROUND
4 ThreadMode: ASYNC
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档