android EventBus 的使用
今天简单的介绍 一下啊 android EventBus 的使用
EventBus 在官方介绍中是订阅......什么的 一大堆 , 在我android 菜鸟眼里 就是用来代替android 广播的 简单粗暴 效率高;
其实用法挺简单 的 就 三步 注册(官方叫订阅) 接收 取消(取消订阅). 算了 不多说直接上代码 ;
如果你用的是 android studio 直接在build.gradle 里添加 :
compile files('libs/EventBus2.4.jar')
这个基础的就不做 过多解释了 网上 jar 类库什么的一大堆
下面是使用:
首先是发送数据
EventBus.getDefault().post(event);//这个在项目哪里都可以发的 event 参数等下讲 接收:
EventBus.getDefault().register(this);//接收之前是要先注册的 否则不会触发
onEventMainThread 也就是收不到发的event 你可以写在onCreate()等初始化方法里
public void onEventMainThread(Event event) {
//接收方法(这是低版本固定格式后面介绍高版本使用)
//event 可以是任意类型 只能一个参数 建议封装一下扩展性强一点 下
//就把这里当做广播接收的地方用吧 更新ui 获取数据.....都可以
int type = event.getType();
switch (type) {
case 1:
break;
case 2:
}
break;
case 3:
break;
}
} //Event 封装
public class Event {
private int type;
private Object message;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public Object getMessage() {
return message;
}
public void setMessage(Object message) {
this.message = message;
}
}
到这里就介绍完了.....相信初学的都能看懂 另外有些时候 发现跟新ui有时候会不灵 可能是不同的项目某些写法上造成的 原因还在查找中 ,但是放心用吧 一般情况不会有问题的
然后提一下 EventBus3.0 用法都一样 只是接收方法不一样了 想在
onEventMainThrea更新ui 必须在方法头部加
@Subscribe(threadMode = ThreadMode.MainThread) //在ui线程执行
public void onUserEvent(UserEvent event) {
}
@Subscribe(threadMode = ThreadMode.BackgroundThread) //在后台线程执行
public void onUserEvent(UserEvent event) {
}
@Subscribe(threadMode = ThreadMode.Async) //强制在后台执行
public void onUserEvent(UserEvent event) {
}
@Subscribe(threadMode = ThreadMode.PostThread) //默认方式, 在发送线程执行
public void onUserEvent(UserEvent event) {
}
另外 :你不必再去约定OnEvent方法开头了该操作很简单,定义了一个hello方法,需要传入String参数,在其中操作UI操作,注意:我们添加了注解@Subscribe,其含义为订阅者,在其内传入了threadMode,我们定义为ThreadMode.MainThread,其含义为该方法在UI线程完成,这样你就不要担心抛出异常啦。是不是很简单?
android EventBus 的使用的更多相关文章
- Android EventBus实战 没听过你就out了
转载请表明出处:http://blog.csdn.net/lmj623565791/article/details/40794879,本文出自:[张鸿洋的博客] 1.概述 最近大家面试说经常被问到Ev ...
- Android EventBus源码解析 带你深入理解EventBus
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40920453,本文出自:[张鸿洋的博客] 上一篇带大家初步了解了EventBus ...
- Android EventBus源代码解析 带你深入理解EventBus
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40920453,本文出自:[张鸿洋的博客] 上一篇带大家初步了解了EventBus ...
- Android EventBus现实 听说你out该
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/40794879.本文出自:[张鸿洋的博客] 1.概述 近期大家面试说常常被问到Ev ...
- Android EventBus 3.0 实例使用详解
EventBus的使用和原理在网上有很多的博客了,其中泓洋大哥和启舰写的非常非常棒,我也是跟着他们的博客学会的EventBus,因为是第一次接触并使用EventBus,所以我写的更多是如何使用,源码解 ...
- Android -- EventBus解析
EventBus EventBus 是一个 Android 事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递.传统的事件传递方式包括:Handler.BroadCastRece ...
- 【转】Android EventBus初探
出处:http://blog.csdn.net/lmj623565791/article/details/40794879 1.概述 最近大家面试说经常被问到EventBus,github上果断dow ...
- android EventBus的简单使用
今天,简单讲讲Android里关于EventBus的使用. 这几天,由于面试的缘故,我听到了很多Android的流行框架,但是之前自己在公司做APP时并没有使用,所以没有了解.于是在网上查找了资料,学 ...
- 【开源库推荐】#3 Android EventBus的使用
原文地址:[开源库推荐]#3 Android EventBus的使用 | Stars-One的杂货小窝 EventBus的Github Event bus for Android and Java t ...
随机推荐
- uva 10496 Collecting Beepers
一个简单的货郎担问题,用状态压缩dp可以解决: 解法: d(i,S)=min{d(j,S-{j})+dis(i,j) | j belongs to S}; 边界条件:d(i,{})=dis(0,i). ...
- 【UVA10765】Doves and bombs (BCC求割点后联通块数量)
题目: 题意: 给了一个联通无向图,现在问去掉某个点,会让图变成几个联通块? 输出的按分出的从多到小,若相等,输出标号从小到大.输出M个. 分析: BCC求割点后联通块数量,Tarjan算法. 联通块 ...
- windows提权操作以及系统开机关机重启代码(用到了LookupPrivilegeValue和AdjustTokenPrivileges调整进程的Token权限)
对于UAC提权操作,一般在编译期间,如果程序有需求要提权,会在编译器里设置,vs2010比较简单,在工程属性里可以直接设置,vs2005稍微有点儿麻烦,参考这篇文章: http://www.seany ...
- QT事件过滤器(QT事件处理的5个层次:自己覆盖或过滤,父窗口过滤,Application过滤与通知)
Qt事件模型一个真正强大的特色是一个QObject 的实例能够管理另一个QObject 实例的事件. 让我们试着设想已经有了一个CustomerInfoDialog的小部件.CustomerInfoD ...
- ☀【HTML5】Modernizr
Modernizr 使用Modernizr探测HTML5/CSS3新特性
- attitude
刚看到一段挺有趣的游戏,分享一下. 如果 令 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 分别等于 1 2 3 4 5 6 7 8 9 10 ...
- 阻止iOS设备锁屏
[[UIApplicationsharedApplication] setIdleTimerDisabled: YES];
- Ural 1046 Geometrical Dreams(解方程+计算几何)
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1046 参考博客:http://hi.baidu.com/cloudygoose/item ...
- 阿里云如何添加多个网站 for Linux(绑定域名)
我们可以通过.htaccess文件来达到一个空间帮顶多个域名的效果,即域名1访问空间上webroot下的目录1(即二级目录),域名2访问空间上webroot下的目录2,等等.二级目录名为fuli,需要 ...
- asterisk帮助与国内论坛
http://www.in2eps.com/fo-abnf/tk-fo-abnf-http.html www.asteriskguru.com/ http://www.voip-info.org/ h ...