EventBus是最近项目用到的,也只是会些简单的功能,不过感觉功能蛮强大的。代码链接:http://download.csdn.net/detail/qq_29774291/9629346

EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。

一.下载的类库:https://github.com/greenrobot/EventBus

二.基本的使用:

  1.在要接收消息的页面注册:

 EventBus.getDefault().register(this);

  2.在发送界面发送消息:

Student student = new Student(20, "张三", "男");
EventBus.getDefault().post(student);

  3.在接受界面接受信息:

@Subscribe
public void onMessageReviced(final Student Message) {
//显示一个弹窗
System.out.println("收到消息dddx :" + Message);
if(Message != null){
showAlertDialog(this, "姓名:" + Message.getName() + "\\年龄:" + Message.getAge() + "\\性别:" +Message
.getSex());
}
}

  4.解除注册:

        @Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
EventBus.getDefault().unregister(this);
}

主程序代码

 package com.item.jiejie.event;

 import de.greenrobot.event.EventBus;
import de.greenrobot.event.Subscribe;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; public class MainActivity extends Activity { private TextView tv_View;
private Button btn_to_finish; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setView();
EventBus.getDefault().register(this);
} @Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
EventBus.getDefault().unregister(this);
}
private void setView() {
// TODO Auto-generated method stub
tv_View = (TextView) findViewById(R.id.tv_text);
btn_to_finish = (Button) findViewById(R.id.btn_to_one);
btn_to_finish.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, OneActivity.class));
}
});
}
private boolean isShow = false;
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
isShow = true;
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
isShow =false;
}
@Subscribe
public void onMessageReviced(final String Message) {
tv_View.setText(Message);
System.out.println("收到消息ddd :" + Message);
} @Subscribe
public void onMessageReviced(final Student Message) {
//显示一个弹窗
System.out.println("收到消息dddx :" + Message);
if(Message != null){
showAlertDialog(this, "姓名:" + Message.getName() + "\\年龄:" + Message.getAge() + "\\性别:" +Message
.getSex());
}
}
private void showAlertDialog(final Context context,String string){
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle("我是标题");
dialog.setMessage(string);
dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub }
});
AlertDialog mDialog = dialog.create();
mDialog.show();
}
}

EventBus简单的实现的更多相关文章

  1. EventBus简单封装

    前言 以前每个页面与每个页面业务逻辑传递让你不知所措,一个又一个接口回调,让你晕头转向,一个又一个参数让你混乱不堪.EventBus一个耦合度低的让你害怕的框架. 什么是EventBus EventB ...

  2. EventBus 简单原理(一)

    EventBus 1.根据文章最前面所讲的EventBus使用步骤,首先我们需要定义一个消息事件类: public class MessageEvent { private String messag ...

  3. Android设计模式—— 观察者模式(以及EventBus的简单使用)

    1.概述 观察者模式最常用的地方是GUI系统.订阅-发布系统.观察者模式的一个重要作用就是解耦,将观察者和被观察者解耦,使得他们之间的依赖性更小. 2.定义 定义对象间的一种一对多依赖关系,使得每当一 ...

  4. 观察者模式与Guava EventBus

    观察者模式 结构图 代码实现 public abstract class Subject { private List<Observer> observerList = new Array ...

  5. EventBus使用的简介

    写在前面 曾经我们做组件间的消息分发更新,通常会採用观察者模式.或者接口数据回调的相关方式,可是这种做法尽管能够解决我们的问题.可是组件之间的耦合相当严重,并且代码也不易阅读和维护,为了解决这种问题, ...

  6. 【Android】AndroidStudio关于EventBus报错解决方法its super classes have no public methods with the @Subscribe

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先说明,以前我用eventBus的 ...

  7. Java 框架、库和软件的精选列表(awesome java)

    原创翻译,原始链接 本文为awesome系列中的awesome java Awesome Java Java 框架.库和软件的精选列表 项目 Bean映射 简化 bean 映射的框架 dOOv - 为 ...

  8. 【热门技术】EventBus 3.0,让事件订阅更简单,从此告别组件消息传递烦恼~

    一.写在前面 还在为时间接收而烦恼吗?还在为各种组件间的消息传递烦恼吗?EventBus 3.0,专注于android的发布.订阅事件总线,让各组件间的消息传递更简单!完美替代Intent,Handl ...

  9. EventBus的简单使用与原理

    一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间 ...

随机推荐

  1. mvc项目controller重命名了,用原网页url访问不了了,怎么办?

    如题.MVC项目,手机网站. 公司的官方微信上,用户关注之后,点击相应菜单就可以使用相关的功能. 最近项目重构,有些不规范的命名方式给予了重构.上线后,微信上发现一些网页访问不了了. 联系微信的维护人 ...

  2. PMO到底什么样?(2)

    接上一篇,继续聊一聊PMO到底什么样. 交付功能,8大典型责任 1监控.评定和报告 项目办理单位从交付的视点必定要有监控评定.每个项目在要害的期间上它的进展是不是跟按期的相同:是不是有要害的专家在要害 ...

  3. lua实现深度拷贝table表

    lua当变量作为函数的参数进行传递时,类似的也是boolean,string,number类型的变量进行值传递.而table,function,userdata类型的变量进行引用传递.故而当table ...

  4. asp.net 文件 操作方法

    /// <summary> /// 移动文件 /// </summary> /// <param name="oldPath">源文件路径< ...

  5. PHP_01之PHP概述、数据、语法

    1.定义:PHP Hypertext Preprocessor,超文本预处理器,服务器端脚本语言:2.环境:WAMP:Window+Apache+PHP+MySQL: LAMP:Linux+Apach ...

  6. jQuery_04之第三方、自定义

    1.第三方插件: ①日期:layDate:不依赖于jquery  使用:html:<input class="laydate-icon">   css:引入laydat ...

  7. jquerymobile仿微信 - 01

    jquerymobile仿微信 - 01 jquerymobile的组件感觉不咋地哇 本地调试最好是开一个web server,不然数据访问会有问题 <div data-role="p ...

  8. Jetty集群配置Session存储到MySQL、MongoDB

    在Web开发中,Session表示HTTP服务器与客户端(例如浏览器)的“会话”,每个客户端会有其对应的Session保存在服务器端,通常用来保存和客户端关联的一些信息,例如是否登录.购物车等. Se ...

  9. 默認打開pr_debug和dev_dbg

    作者:彭東林 郵箱:pengdonglin137@163.com 日期:2016-08-26 18:04:14 在進行Linux驅動開發時經常見到使用pr_debug和dev_dbg打印驅動的log, ...

  10. 炫!一组单元素实现的 CSS 加载进度提示效果

    之前的文章个大家分享过各种类型的加载效果(Loading Effects),这里再给大家奉献一组基于单个元素实现的 CSS 加载动画集合.这些加载效果都是基于一个 DIV 元素实现的,十分强悍. 温馨 ...