我是靠谱客的博主 潇洒樱桃,最近开发中收集的这篇文章主要介绍【Android开发--新手必看篇】依赖框架EventBus的使用Android笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Android笔记

​ ——EventBus
若对该知识点有更多想了解的,欢迎私信博主~~

依赖框架:EventBus

一:优势及作用
  1. 分离事件发送者和接收者
  2. 在Activity、Fragment和后台线程中也可以方便使用
  3. 高度解耦,解决了生命周期的问题
  4. 代码更加简洁
二:EventBus的配置
  1. 分build.gradle中添加(注入依赖)

    dependencies {
    implementation 'org.greenrobot:eventbus:3.1.1'
    }
    
三:使用
  1. 定义一个用于事件类

    public class UserEvent {
    private User user;
    public UserEvent(User user) {
    this.user = user;
    }
    public User getUser() {
    return user;
    }
    public void setUser(User user) {
    this.user = user;
    }
    }
    
  2. 在接收的地方(此处为Activity)注册EventBus

    //MainActivity
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //绑定控件
    initView();
    //为该Activity注册EventBus
    EventBus.getDefault().register(this);
    }
    
  3. 定义一个方法用来接收信息

    //MainActivity
    //参数1:四种线程模型
    //参数2:黏性事件,事件处理函数会在Activity UI创建之前,利用黏性事件,可以在创建完UI后再运行一次
    //参数3:优先级,例如有两个OnEvent与threadMode相同的Activity,优先级越高,越早执行,默认为0。
    //因为事件有继续分发性,若是不想让以后的Activity也接收,可以利用优先级
    //EventBus.getDefault().cancelEventDelivery(message);来停止
    @Subscribe(threadMode = ThreadMode.POSTING, sticky = true)
    public void OnEvent(UserEvent userEvent) {
    Log.e("aaa","1.UserEvent");
    tvFirst.setText(userEvent.getUser().getId());
    }
    
    线程模型说明
    POSTING默认,表示事件处理函数的线程与事件发布的线程为同一个
    MAIN表示事件处理函数的线程在主线程(UI)线程中,不能进行耗时操作
    BACKGROUND表示事件处理函数的线程在后台线程中,不能进行UI操作
    如果发布事件在主线程里,那事件处理函数则在后台开新线程
    如果发布事件在后台线程里,则事件处理函数在同一个
    ASYNC表示无论事件发布的线程在哪一个,事件处理函数的线程都会新建一个子线程,不能进行UI
  4. 在需要发布的地方(此处为SecondActivity)发布事件

    //post()--普通发布事件,postSticky()--发布黏性事件接收的信息
    //由此看出,不仅可以发布String、Boolean等普通值,还可以发布对象,所有注册EventBus都可
    //以接收
    EventBus.getDefault().postSticky(new UserEvent(user));
    
  5. 销毁(可以不写)

    @Override
    protected void onDestroy() {
    super.onDestroy();
    EventBus.getDefault().unregister(this);
    }
    
参考文档:
  1. https://www.jianshu.com/p/e7d5c7bda783
  2. https://github.com/greenrobot/EventBus

最后

以上就是潇洒樱桃为你收集整理的【Android开发--新手必看篇】依赖框架EventBus的使用Android笔记的全部内容,希望文章能够帮你解决【Android开发--新手必看篇】依赖框架EventBus的使用Android笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部