EventBus的其他常用函数
上一篇EventBus最简易使用方式介绍了EventBus最简易的使用方式,摆脱了叽里呱啦+图片的长篇大论。目的是为了让刚开始接触的人们不晕头转向。那么这篇。。我也要开始图片+叽里呱啦了。
转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50628011
怎么才能了解EventBus呢。。当然是直接看github上的README了。
首先,是github上的描述
Android optimized event bus that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.
意思为:安卓平台上一个用于Activity,Fragment,Thread,Service被优化简化的通讯协议。 加量不加价(少代码,高质量)!
这个…… 呃~~ -__-” 说的很明白了。
- 再来看readme
发现一张图片:
描述了发布者和订阅者的关系。即:一个发布者 发布事件到总线,总线分发给订阅者。
EventBus…
simplifies the communication between components
decouples event senders and receivers
performs well with Activities, Fragments, and background threads
avoids complex and error-prone dependencies and life cycle issues
makes your code simpler
is fast
is tiny (<50k jar)
is proven in practice by apps with 100,000,000+ installs
has advanced features like delivery threads, subscriber priorities, etc.
妈蛋,最讨厌看英文了,反正叽里呱啦一大堆,用我们博大精深的中文来概括就是:EventBus:短、小、快!
关于EventBus的方法
- 注册和注销这里就不说了,这里首先说说他的post方法
昨天我给出的使用示例是:
EventBus.getDefault().post("hello Eventbus");
其实我们可以自己定制消息类型,如
public class MessageEvent {
public final String message;
public MessageEvent(String message) {
this.message = message;
}
}
然后将它发送出去:
EventBus.getDefault().post(new MessageEvent("Hello everyone!"));
其实和handler很像了有木有~~ 有了这样定制消息的功能,我们就可以个性化消息,来对消息进行分类啊等等工作。
PostThread
是说该方法将会在同一个线程来调用,避免了线程之间的切换,比如你是在主线程发送的消息,那么将会运行在主线程,如果为其他线程,那么将在其他线程调用。
// 在相同线程里调用 (默认)
public void onEvent(MessageEvent event) {
log(event.message);
}
MainThread
将会在主线程调用,如果本身就在主线程,将直接调用
// 在主线程(UI线程)调用
public void onEventMainThread(MessageEvent event) {
//进行UI操作
textField.setText(event.message);
}
BackgroundThread
将会在工作线程(后台线程)调用
// 在后台线程调用
public void onEventBackgroundThread(MessageEvent event){
//进行耗时操作
saveToDisk(event.message);
}
额。。关于EventBus的常用函数就是这些了。 EventBus的优点到底是什么? 我觉得就是短小快吧 哈哈哈啊哈哈哈哈哈
关于EventBus的缺点
因为他是通过反射来获取方法名的。所以如果方法被混淆的话。。就不会起作用了。。这是EventBus最大的缺点之一。
如果你喜欢我的博客 请关注我。
EventBus的其他常用函数的更多相关文章
- oracle常用函数及示例
学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...
- 总结js常用函数和常用技巧(持续更新)
学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...
- [转]SQL 常用函数及示例
原文地址:http://www.cnblogs.com/canyangfeixue/archive/2013/07/21/3203588.html --SQL 基础-->常用函数 --===== ...
- PHP常用函数、数组方法
常用函数:rand(); 生成随机数rand(0,50); 范围随机数时间:time(); 取当前时间戳date("Y-m-d H:i:s"); Y:年 m:月份 d:天 H:当前 ...
- Oracle常用函数
前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...
- Thinkcmf:页面常用函数
Thinkcmf:页面常用函数 全站seo: 文章列表: {$site_seo_title} <!--SEO标题--> {$site_seo_keywords} < ...
- matlab进阶:常用功能的实现,常用函数的说明
常用功能的实现 获取当前脚本所在目录 current_script_dir = fileparts(mfilename('fullpath')); % 结尾不带'/' 常用函数的说明 bsxfun m ...
- iOS导航控制器常用函数与navigationBar常用属性
导航控制器常用函数触发时机 当视图控制器的View将要出现时触发 - (void)viewWillAppear:(BOOL)animated 当视图控制器的View已经出现时触发 - (void)vi ...
- 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册
<zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...
随机推荐
- Android开发使用Java8新特性
Android 支持所有 Java 7 语言功能,以及一部分 Java 8 语言功能(具体因平台版本而异).本文介绍您可以使用的新语言功能.如何正确配置项目以使用这些功能,以及您可能遇到的任何已知问题 ...
- 远程拷贝、查看端口、vim常见快捷键、查找替换命令、grep命令、查看存储空间的命令、chkconfig命令、系统自动启动级别、主机名配置、IP地址配置、域名映射、防火墙设置
2.1.远程拷贝 (将/export/servers/hadoop上的文件拷贝到bigdate@192.168.1.1:/export/servers/ ) scp –r /export/server ...
- springMVC源码分析--AbstractControllerUrlHandlerMapping(六)
上一篇博客springMVC源码分析--AbstractDetectingUrlHandlerMapping(五)中我们介绍了AbstractDetectingUrlHandlerMapping,其定 ...
- Android Lollipop 5.0 经典新特性回顾
*Tamic 专注移动开发! 更多文章请关注 http://blog.csdn.net/sk719887916 虽然Android已到了7.0 ,但是我们还是不能忘怀视觉革命性改变的5.0,今天回顾下 ...
- 硬件模块化机器人操作系统 Hardware Robot Operating System (H-ROS)
原文网址:http://www.ros.org/news/2016/10/hardware-robot-operating-system-h-ros.html 推荐网址:https://h-ros.c ...
- Excel 数据验证宏
Sub 宏1() ' ' 宏1 宏 ' ' With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlVal ...
- nginx平台初识(一)
众所周知,nginx性能高,而nginx的高性能与其架构是分不开的.那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧. nginx在启动后,在unix系统中会以daemon的方式 ...
- scala模式匹配的使用
Scala模式匹配 Tip1:模式总是从上往下匹配,如果匹配不到则匹配case_项(类似Java中的default) Tip2:与Java和C语言不同,不需要在每个分支末尾使用break语句退出(不会 ...
- memcached实战系列(五)Memcached: List all keys 查询所有的key
memcached可能当时设计的时候就把它定位为内存性的kv结构的缓存系统.所以没有持久化到磁盘的命令,也没有查看所有key的值得命令.可能觉得没必要吧,你要是缓存1个G内存的数据,自己都头大,还敢看 ...
- [ExtJS5学习笔记]第九节 Extjs5的mvc与mvvm框架结构简介
本文地址:http://blog.csdn.net/sushengmiyan/article/details/38537431 本文作者:sushengmiyan ------------------ ...