浅谈开源类库EventBus的消息机制

EventBus是基于Otto的消息发送机制,经过开源大神们的封装,已经越来越好用了。

发送消息(必须在主线程中发送消息,发消息可以不用注册bus)

EventBus.getDefault().post();

接受消息(必须在主线程中接受消息,接受消息必须注册bus)

public void onEvent() {}

注册bus

EventBus.getDefault().register(this);

ex:

package com.woyou.utils.eventbus;

/**
 * otto事件抽象
 *
 * @author longtao.li
 *
 */
public interface IEvent<T> {

	int getId();

	void setId(int id);

	T getData();
}

package com.woyou.utils.eventbus;

import com.woyou.model.Goods;

/**
 * 显示属性layout的事件通知
 * @author longtao.li
 *
 */
public class EventShowProp implements IEvent<Goods>{

	private Goods goods;
	public EventShowProp(Goods goods) {
		this.goods = goods;
	}
	@Override
	public int getId() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public void setId(int id) {
		// TODO Auto-generated method stub

	}

	@Override
	public Goods getData() {
		return goods;
	}

}

EventShowProp eventShowProp = new EventShowProp(goods);
EventBus.getDefault().post(eventShowProp);

	/**
	 * 显示选择属性布局
	 * @param event
	 */
    EventShowProp eventShowProp;
	public void onEvent(EventShowProp event){
		if( eventShowProp == event ){
			return;
		}
		Log.i(TAG, "EventShowProp");
		this.eventShowProp = event;
		propertylayout.showPropView(event.getData(), null);
		propertylayout.setVisibility(View.VISIBLE);
	}

关于它的jar包,地址:http://download.csdn.net/detail/u012301841/8456735

时间: 2024-11-05 22:55:45

浅谈开源类库EventBus的消息机制的相关文章

浅谈getaddrinfo函数的超时处理机制

在sockproxy上发现,getaddrinfo 解析域名相比ping对域名的解析,慢很多.我觉得ping用了gethostbyname解析域名.问题变为getaddrinfo解析域名,是否比 gethostbyname慢.写测试程序,分别用getaddrinfo和gethostbyname解析,发现getaddrinfo确实慢. strace跟踪发现,getaddrinfo和DNS服务器通信10次,gethostbyname和DNS服务器通信2次. gethostbyname是古老的域名解析

(转)浅谈移动操作系统的跨应用通信机制

[核心提示] 对开发者来说,在 iOS 上实现跨应用的通信依然是一件头疼的事.对于 iOS 的竞争对手们来说,这一问题是如何处理的呢?本文浅谈目前主流移动操作系统的跨应用通信机制. 在“应用间通信——iOS 的孤岛困境”一文中,我们曾经讨论过 iOS 上跨应用通信与内容分享的难题.而直到现在,在 iOS 上想实现跨应用的通信和内容分享依然是一件头疼的事,虽然我们已经可以使用 iOS 系统内部整合的分享功能,实现通过 Twitter.电子邮件.短消息的内容分享,但此功能尚未向第三方开发者开放,用户

浅谈开源Kafka与腾讯云cKafka

今天下午参加了腾讯云+社区组织的kafka公开课,收获良多.正巧在工作中也遇到过kafka的问题,今天听完之后产生了非常多的感想.无奈篇幅有限,本人又文笔愚钝,所以今天的分享主要提及对我感触最深的内容.分享的顺序还是按照老形式来进行吧(提出疑问--解决疑问) [提出疑问] 1.为什么要设计kafka? 2.开源的kafka架构是怎么样的? 3.腾讯云的ckafka架构是怎样的? 4.腾讯云的ckafka架构解决了什么样的问题? 5.我对开源kafka的设想? 一.为什么要设计kafka? 扩容性

小学生之浅谈Struts2与struts1的运行机制

Struts1工作原理图: 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.(面向对象思想) 2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器. 3.form填充:struts的总控制器ActionServlet在用户提交请求时将数

浅谈 Java 主流开源类库解析 XML

在大型项目编码推进中,涉及到 XML 解析问题时,大多数程序员都不太会选用底层的解析方式直接编码. 主要存在编码复杂性.难扩展.难复用....,但如果你是 super 程序员或是一个人的项目,也不妨一试. Jdom/Dom4j/Xstream... 基于底层解析方式重新组织封装的开源类库,简洁明了的 API,稳定高效的运行表现. Dom4j 基于 JAXP 解析方式,性能优异.功能强大.极易使用的优秀框架.想了解底层解析方式请翻看:浅谈 Java XML 底层解析方式 Jdom 你细看内部代码,

浅谈windows消息机制

首先来了解几个基本概念: 消息:在了解什么是消息先来了解什么是事件.事件可分为几种,由输入设备触发的,比如鼠标键盘等等.由窗体控件触发的,比如button控件,file菜单等.还有就是来自Windows内部的事件.这三种称为事件.而消息,是由事件翻译而来的.事件产生消息. 从数据结构角度来讲,消息是一种结构体.结构如下: 1 typedef struct tagMSG 2 3 { 4 5 HWND hwnd; //窗口句柄. 6 7 UINT message;//消息类型. 8 9 WPARAM

Android项目实战(十三):浅谈EventBus

原文:Android项目实战(十三):浅谈EventBus 概述: EventBus是一款针对Android优化的发布/订阅事件总线. 主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service. 线程之间传递消息.优点是开销小,代码更优雅,以及将发送者和接收者解耦. ---------------------------------------------------------------------------------------

浅谈分布式消息技术 Kafka

http://www.linkedkeeper.com/1016.html Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志.访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目. 主要应用场景是:日志收集系统和消息系统. Kafka主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化

浅谈分布式消息技术 Kafka(转)

一只神秘的程序猿. Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志.访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目. 主要应用场景是:日志收集系统和消息系统. Kafka主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能.