`
xylong
  • 浏览: 190843 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android EventBus学习记录

阅读更多

本来eventBus是guava工具框架中很重要的一部分,是一个发布与订阅的事件总线工具,整个还是比较比较轻量级,对于一些高并发高吞吐量的场景还是很使用的,android eventBus就是基于此做了针对android移动端的框架,整个过程是异步的,解耦的,其余的也不多讲,这里简要介绍基本用法,原理的东西大家去看下源代码,代码不多。

 

1,默认用法

在activity的生命周期事件中注册或者取消注册事件,常规用法是onStart事件中注册eventBus事件,onStop事件中取消注册事件,并按照规范增加onEvent(String event)方法,该方法中可以实现自己的业务逻辑,如何分发事件,比如onClick中EventBus.getDefault().post(event),这里是整个应用中如何共享一个EventBus,而每个Activity中并没有定义全局的EventBus哦,具体实现可以看下源代码。

 

2,自定义事件

自定义事件,其余部分基本一致,唯独不同的是onEvent(Stirng event)的接收参数可以自定义,比如

private Class customEvent{

    属性/方法

},按照约定实现的onEvent(CustomEvent event),其余并没有不同

 

3,不同线程模型执行回调事件

public void onEventBackgroundThread(String event) ;

public void onEventAsync(String event);

public void onEventMainThread(String event);

public void onEvent(String event);

 

4,延时执行模型

EventBus.getDefault().postSticky();

分享到:
评论

相关推荐

    Node.js-Eventbus3.0简单使用适合初学者使用

    这就是EventBus(事件总线)的概念,它模仿了Android中的EventBus库,提供了一个方便、轻量级的事件发布/订阅机制。本文将详细介绍如何在Node.js环境中使用Eventbus3.0,适合初学者快速上手。 首先,你需要安装`...

    安卓Android源码——EventBus-master.zip

    通过对 EventBus 源码的学习,开发者可以深入了解其内部的订阅者管理、事件分发、线程调度等机制,这对于定制化需求或者创建自己的事件系统会有很大帮助。同时,理解 EventBus 的工作原理也有助于优化应用性能,避免...

    EventBus-master

    这个 "EventBus-master" 压缩包包含了 EventBus 的源代码,对于开发者来说,尤其是对 EventBus 感兴趣或者想要深入理解其工作原理的初学者,这是一个很好的学习资源。 EventBus 的核心思想是通过发布/订阅模式来...

    android学习笔记3

    在“android学习笔记3”中,我们重点探讨了Fragment的概念、用途以及如何在实际项目中有效地使用它。 Fragment是Android SDK引入的一个关键组件,主要为了解决在不同屏幕尺寸(如手机和平板)上的适配问题。它可以...

    黑马Android基础笔记

    《黑马Android基础笔记》是一份全面且深入的Android开发学习资料,主要针对初学者和希望巩固基础知识的开发者。这份笔记涵盖了Android开发的核心概念和技术,旨在帮助读者构建坚实的Android开发基础。 1. **Android...

    Guava-Event-Bus:Guava的EventBus源码学习

    Guava-Event-Bus 学习笔记 Guava的EventBus源码学习,基于Guava的18.0版本 分析者: ###1. 背景简介 EventBus是google的一个Java工具包其中的一个工具类,类似的有多个版本其中包括移植到Android端的 和改良的,功能...

    EventBus Demo

    8. **调试与日志**:EventBus提供了调试支持,通过在初始化时设置`EventBus.builder().logNoSubscriberMessages(true)`,可以记录未找到订阅者的事件,帮助开发者调试。 9. **多线程处理**:EventBus支持在后台线程...

    EventBus的DEMO.zip

    - ** posting 或 subscribing 时发生错误**: EventBus 会捕获这些异常并记录在日志中,开发者需要检查日志来解决问题。 - **SubscriberException**: 如果订阅者方法抛出异常,EventBus 将不再调用其他订阅者。 5....

    Android学习笔记(十六)——碎片之间进行交互(附源码)

    本篇笔记将深入探讨如何在Android中实现碎片之间的交互,并附带源码供参考。 首先,理解碎片的基本概念。碎片是一个可以包含UI元素和业务逻辑的模块,它们可以独立于活动存在,也可以与其他碎片组合在一起。在多屏...

    201888-android培训示例代码及课件

    EventBus简化了组件间的通信,让应用的架构更加清晰,学习者可以掌握发布/订阅模式在Android中的应用。 5. **Okhttp网络通信库** "Okhttp网络通信库.pptx"介绍了Okhttp,一个高效的网络通信库,用于发送HTTP请求和...

    eventBus源码

    EventBus 是一个流行的消息总线库,用于 Android 开发,它简化了组件之间的通信,使得在应用程序的不同组件之间传递事件变得更加容易。这个压缩包文件"EventBus-master"很可能包含了EventBus库的源代码,示例项目,...

    EventBus3Demo

    如果订阅者方法抛出异常,EventBus会捕获并记录,但默认不会停止其他订阅者的执行。可以通过自定义`EventBusBuilder`设置错误处理器来改变此行为。 通过EventBus3Demo项目,你可以学习到如何在实际应用中实现这些...

    android_fragment学习笔记.pdf

    例如,当在一个Fragment中的某个操作发生时,可以通过接口回调或者EventBus等方式通知Activity,进而更新其他Fragment的状态。在上述示例中,当左侧Fragment中的选项被点击时,右侧Fragment会相应地更新显示内容。 ...

    Android-NetworkObserver--极简可实时监控网络状态兼容至Android9.0

    6. **错误处理与调试**:Android-NetworkObserver还提供了一些辅助工具,帮助开发者在遇到网络问题时进行诊断和调试,例如记录网络状态变化的日志。 在实际应用中,Android-NetworkObserver能够帮助开发者更好地...

    三大项目android实战项目源码 51cto

    标题 "三大项目android实战项目源码 51cto" 提供了我们即将探讨的核心内容:这是一套基于Android的实战...综合以上分析,这个项目涵盖了Android应用开发的多个重要方面,对学习和提升Android实战技能有很高的参考价值。

    android备忘录源码

    在Android平台上,开发一款备忘录应用是一种常见的实践,它能帮助用户记录日常生活中的琐事、待办事项或重要信息。本源码提供了一个完整的Android备忘录应用的实现,对于学习Android应用开发或者想要深入理解备忘录...

    Android高级应用源码-Android断点下载.zip

    本资源“Android高级应用源码-Android断点下载.zip”提供了实现这一功能的详细源代码,对于开发者来说,这是一个很好的学习和参考材料。以下是关于Android断点下载的一些关键知识点: 1. 文件分块下载:在断点下载...

    Android高仿QQ源代码

    在Android开发领域,高仿应用源代码是一种常见的学习方式,通过分析和研究这些代码,开发者可以深入了解特定应用的设计思路和技术实现。本项目是针对QQ应用的高仿源代码,为Android开发者提供了一个学习和实践的平台...

    微信Android版项目源码

    微信Android版项目源码是Android开发领域中一个极具学习价值的资源,对于想要深入理解Android应用开发、微信内部机制以及优化技巧的开发者来说,这是一个宝贵的资料库。源码包含了微信客户端在Android平台上的所有...

    Android多线程断点续传下载

    通过这个"MultiThreadDownload"项目,开发者可以学习到如何在Android中实现多线程断点续传下载,理解其背后的原理和技术细节,这对于提升应用的下载性能和用户体验非常有帮助。记得阅读源代码中的注释,它们会进一步...

Global site tag (gtag.js) - Google Analytics