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();
}
}

最新文章

  1. 深入springMVC------文件上传源码解析(上篇)
  2. Yocto开发笔记之《错误记录》(QQ交流群:519230208)
  3. Attributes:文本属性 和NSAttributedString
  4. ODI 12c 安装
  5. HDU-4679 Terrorist’s destroy 树形DP,维护
  6. centos 下 yum 安装 nginx 平滑切换安装到 Tengine
  7. delphi 基础书籍推荐
  8. C语言之冒泡排序
  9. ios开发证书,描述文件,bundle ID的关系
  10. [编织消息框架][设计协议]opCode
  11. Unity游戏程序员面试题及解答
  12. 摘抄自知乎的redis相关
  13. call和apply和bind区别
  14. 【转载】XSS学习笔记
  15. PCIe设备的配置空间
  16. ES5中文分词(IK)
  17. struts2学习笔记(一)
  18. Java入门知识1
  19. FFmpeg(9)-解码器解码代码演示(FFmpeg调用MediaCodec实现硬解码、多线程解码、及音视频解码性能测试)
  20. python基础学习笔记(一)

热门文章

  1. [Spring框架]Spring AOP基础入门总结一.
  2. atitit 短信验证码的源码实现  .docx
  3. Nginx反向代理搭建配置
  4. salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)
  5. javascript中function 函数递归的陷阱问题
  6. Netgen mesh library : nglib
  7. (4) PIVOT 和 UPIVOT 的使用
  8. 使用ExifInterface设置Datetime发生的问题
  9. iis https 客户端证书
  10. JavaScript的学习--JavaScript设计模式的总结