Android自助餐之EventBus框架

Android自助餐之EventBus框架

  • Android自助餐之EventBus框架

    • 下载完整源代码
    • 配置buildgrandle
    • 实例化EventBus
    • 注册事件监听
    • 定义被传递的事件类
    • 发送事件
    • 处理时间

下载完整源代码

配置build.grandle

compile ‘de.greenrobot:eventbus:2.4.0‘

实例化EventBus

eventBus=EventBus.builder().build();

注册事件监听

eventBus.register(this);

this为事件接收者(消费事件、处理事件…随便怎么说吧)

定义被传递的事件类

注意要定义一个,这个类可以随便定义,也可以用现有的类

class Event{
    public String result="default";
}

发送事件

eventBus.post(event);

可以再任意线程任意位置发送事件,但要保证eventBus在注册和发送时为同一个对象。

处理时间

在注册时的this的类中写如下方法

- public void onEventMainThread(Event event){}

接到事件后在主线程消费事件

- public void onEvent(Event event){}

接到事件后在事件post的线程中消费事件(注意不能进行耗时操作,否则影响事件传递)

- public void onEventBackgroundThread(Event event){}

在后台线程中消费事件。如果事件的post线程为后台线程,则使用post线程,否则在新的子线程中消费事件

- public void onEventAsync(Event event){}

在新的子线程中消费事件

时间: 2024-12-11 05:17:02

Android自助餐之EventBus框架的相关文章

Android组件间通信框架EventBus

事件总线EventBus模式概述 在不使用事件总线的情况下: 在应用中的多个地方,控件经常需要根据某个状态来更新他们显示的内容.这种场景常见的解决方式就是定义一个接口,需要关注该事件的控件来实现这个接口.然后事件触发的地方来注册/取消注册这些对该事件感兴趣的控件.例如,陌陌依赖手机位置信息来获取附近的用户,所以在位置更新管理器(MmLocationManager)中定义了一个接口来监听位置更新的事件(MmLocationListener): interface MmLocationListene

Android编程入门--开源框架EventBus

github地址:greenrobot / EventBus 参考博客:EventBus3.0详解 参考博客: Android事件总线(一)EventBus3.0用法全解析 参考博客:Android消息传递之EventBus 3.0使用详解 先准备订阅 EventBus.getDefault().register(this); @Subscribe public void onMainEvent(MessageEvent messageEvent) { if (messageEvent.getM

EventBus框架总结

/*---------------------------------------- *-描述--EventBus框架总结. *-描述--S1.快速集成 * SS1.添加依赖 compile 'org.greenrobot:eventbus:3.0.0' * SS2.MainAct 注册EventBus EventBus.getDefault().register(this); * onEventMainThread(MyEvent event)获取发送过来的消息 * SS3.SubAct发送消

EventBus框架源码分析

开源项目 上周又手动撸了一遍EventBus实现,同时上传EventBus的中文注释源码到Github上,欢迎大家fork&star. EventBusAnalysis EventBus 基础概念 EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化Android事件传递.事件传递既可以用于Android四大组件间的通讯,也可以用于用户异步线程和主线程间通讯等. 传统的事件传递方法包括:Handler,BroadCastReceiver,interface回调,相比

EventBus框架库代码走读

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 本篇继续接上一篇,阅读上一篇EventBus使用之基础 背景 开始分析EventBus前可以下看下EventBus开源框架的工程目录结构: 从上图可以发现,其实EventBus的代码量不是很大,还是很方便入手分析的. 开始分析 通过上一篇基础使用可以发现,使用EventBus框架第一步是得到

BAT大牛 带你深度剖析Android 10大开源框架

第1章 课程介绍(提供bat内推和简历指导) 1-1 课程导学 第2章 Okhttp网络库深入解析和相关面试题分析 2-1 okhttp框架流程分析 2-2 okhttp同步请求方法 2-3 okhttp异步请求方法 2-4 okhttp同步请求流程和源码分析 2-5 okhttp异步请求流程和源码分析-1 2-6 okhttp异步请求流程和源码分析-2 2-7 okhttp任务调度核心类dispatcher解析-1 2-8 okhttp任务调度核心类dispatcher解析-2 2-9 okh

Android Bitmap 开源图片框架分析(精华三)

主要介绍这三个框架,都挺有名的,其他的框架估计也差不多了 Android-Universal-Image-Loaderhttps://github.com/nostra13/Android-Universal-Image-Loader ImageLoaderhttps://github.com/novoda/ImageLoader Volley(综合框架,包含图片部分)https://github.com/mcxiaoke/android-volley 扯淡时间,可以跳过这段这些开源框架的源码还

Android Bitmap 开源图片框架分析(精华四)

disk缓存主要难点在于内存缓存,disk缓存其实比较简单,就是图片加载完成后把图片文件存到本地方便下次使用 同样,先贴一下官方主页的介绍(主页地址见文章最开始处)和内存缓存差不多,根据算法不同提供了几种类别,可以自行通过ImageLoaderConfiguration.discCache(..)设置<ignore_js_op> 硬盘缓存,保存是以文件的形式框架提供了4种类型,具体算法规则不同,看名字我们大概也能知道对应意思 UnlimitedDiscCache                

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap