EventBus 的使用方法

在项目中遇到了界面关闭的时候需要通知activity或者fragment之间数据的刷新,了解了EventBus的使用,特别总结下来,方便使用。

主要功能:替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。

一丶下载地址:点击打开链接下载资源

二丶使用方法
可以导入 jar包或者引用整个工程

1.在发送消息的界面 我这里是点击 返回键 发送一个消息

			case R.id.btn_back: //返回键
				
				EventBus.getDefault().post(new Event(Event.FROM_PERSONINFORMATION_ACTIVITY, user));
				finish();
				break;

2. 在接受消息界面,注册eventBus


			//注册eventBus
			EventBus.getDefault().register(this);


3.在接受消息界面,重写onEventMainThread()方法,把需要刷新的数据操作都放在里面

<span style="white-space:pre">	</span>public void onEventMainThread(Event event){
		
		String msg = event.getMsg();
		int code = event.getCode();
		//如果来自个人资料界面
		if(Event.FROM_PERSONINFORMATION_ACTIVITY.equals(msg) ){
			
			mUser = (User) event.getData();
			
			mTv_username.setText(mUser.NickName);
			mTv_motto.setText(mUser.SignName);
			
			if(code == 1){
				mTv_username.setText("代用名");
				mTv_motto.setText("卑鄙是卑鄙者的通行证,高尚是高尚者的墓志铭。");
				//用户置为空
				mUser = null;
			}
		}
		
		if(Event.FROM_HOMEPAGE_FRAGMENT.equals(msg)){
			mTv_username.setText(mUser.NickName);
			mTv_motto.setText(mUser.SignName);
		}
		
	}


Event类

<span style="white-space:pre">	</span>public class Event implements Serializable{
	
	public static final String FROM_MODIFYNICK_ACTIVITY = "isFromModifyNick";//来自修改昵称和签名
	public static final String FROM_MYAPPOINTMENT_ACTIVITY = "isFromMyAppointment";//来自我的预约
	public static final String FROM_PERSONINFORMATION_ACTIVITY = "isFromPersoninformation";//来自我的个人信息
	public static final String FROM_HOMEPAGE_FRAGMENT = "isFromhomepagefragment";//来自我的首页fragment
	
		 String msg;
		 int code=0;
		 Object data;
	
	    public Object getData() {
	        return data;
	    }
	
	    public void setData(Object data) {
	        this.data = data;
	    }
	
	    public Event(String msg) {
	       this(msg,0);
	    }
	
	    public Event(String msg, int code) {
	        this.msg = msg;
	        this.code = code;
	    }
	    
	    public Event(String msg, Object data,int code) {
	        this.msg = msg;
	        this.data = data;
	        this.code = code;
	    }
	    
	    public Event(String msg, Object data) {
	        this(msg,0);
	        this.data=data;
	    }
	    public String getMsg() {
	        return msg;
	    }
	
	    public int getCode() {
	        return code;
	    }
}



4.在销毁界面时注销 

<span style="white-space:pre">	</span>//销毁调用
	@Override
	public void onDestroy() {
		super.onDestroy();
		if (rechangeReceiver != null) {
			//注销广播
			mApplication.unregisterReceiver(rechangeReceiver);
		}
		//注销EventBus
		EventBus.getDefault().unregister(this);
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值