EventBus

guava EventBus 消息总线的运用

笑着哭i 提交于 2019-12-30 08:47:41
public class Test { public static void main(String[] args) { final EventBus eventBus = new EventBus(); eventBus.register(new Object() { @Subscribe public void lister(Integer integer) { System.out.printf("%s from int%n", integer); } @Subscribe public void lister(Number integer) { System.out.printf("%s from Number%n", integer); } @Subscribe public void lister(Long integer) { System.out.printf("%s from long%n", integer); } }); // eventBus.post(1); // eventBus.post(1L); final EventBus eventBus1 = new EventBus(); eventBus1.register(new Object() { @Subscribe public void lister(DeadEvent event) {

Android EventBus的使用

旧城冷巷雨未停 提交于 2019-12-27 03:42:36
这个其实和Intent传值差不多,但我们用Intent传值的时候消耗非常大,这个消耗就非常小了,我们可以看到, 手机页面都没有看到Activity的切换,也没有闪动; 首先需要导入依赖 compile 'org.greenrobot:eventbus:3.0.0' 先来介绍普通的事件(这个就类似我么的startActivityForResult()) 然后就是写代码了,首先是要注册: EventBus.getDefault().register(MainActivity.this); 然后就是我们要启动的Activity Intent intent = new Intent(getApplicationContext(), JIeshou.class); startActivity(intent); 然后就是我们要发送的东西,要在我们要发送的Activity中写: EventBus.getDefault().post(new AnyEventType("接受到了")); finish(); 然后我们又要在MainActivity中接受了: @Subscribe(threadMode = ThreadMode.MAIN) public void userEventBus(AnyEventType userEvent){ tv.setText(userEvent.getmMsg());

android EventBus 的使用

一笑奈何 提交于 2019-12-27 03:42:19
今天简单的介绍 一下啊 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 获取数据..

ABP(现代ASP.NET样板开发框架)系列之14、ABP领域层——领域事件(Domain events)

大兔子大兔子 提交于 2019-12-26 04:45:25
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之14、ABP领域层——领域事件(Domain events) ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ABP的官方网站 : http://www.aspnetboilerplate.com ABP在Github上的开源项目 : https://github.com/aspnetboilerplate 在C#中,一个类可以定义其专属的事件并且其它类可以注册该事件并监听,当事件被触发时可以获得事件通知。这对于对于桌面应用程序或独立的Windows Service来说非常有用。但是, 对于Web应用程序来说会有点问题,因为对象是根据请求(request)被创建并且它们的生命周期都很短暂。我们很难注册其它类别的事件。同样地,直接注册其它类别的事件也造成了类之间的耦合性。 在应用系统中,领域事件被用于解耦并且重用(re-use)商业逻辑。 事件总线 事件总线为一个单体(singleton)的对象,它由所有其它类所共享,可通过它触发和处理事件。要使用这个事件总线,你需要引用它。你可以用两种方式来实现: 获取默认实例( Getting the default instance) 你可以直接使用EventBus.Default

EventBus广播

和自甴很熟 提交于 2019-12-25 18:29:21
第一步:添加依赖 compile 'org.greenrobot:eventbus:3.0.0' 第二步:定义消息事件类 public class MessageEvent{ private String message; public MessageEvent(String message){ this.message=message; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } 第三步:注册和解除注册 分别在FirstActivity的onCreate()方法和onDestory()方法里,进行注册EventBus和解除注册。 package com.example.lenovo.testapp.ui; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; import android

EventBus使用详解(二)——EventBus使用进阶

旧街凉风 提交于 2019-12-25 18:27:16
前言:这段时间感觉自己也有点懒了,真是内心有点自责呢,除了工作,也没做点什么,EventBus也是一周前总结出来的,只能以写博客为名来弥补内心的罪恶感了,集合同事们做的项目,虽然上周开动了,但总感觉大家积极性不高,如何才能做一个合格的管理者,还真是一个考验。follow your heart!! just do it! 相关文章: 1、 《EventBus使用详解(一)——初步使用EventBus》 2、 《EventBus使用详解(二)——EventBus使用进阶》 一、概述 前一篇给大家装简单演示了EventBus的onEventMainThread()函数的接收,其实EventBus还有另外有个不同的函数,他们分别是: 1、onEvent 2、onEventMainThread 3、onEventBackgroundThread 4、onEventAsync 这四种订阅函数都是使用onEvent开头的,它们的功能稍有不同,在介绍不同之前先介绍两个概念: 告知观察者事件发生时通过EventBus.post函数实现,这个过程叫做事件的发布,观察者被告知事件发生叫做事件的接收,是通过下面的订阅函数实现的。 onEvent: 如果使用onEvent作为订阅函数,那么该事件在哪个线程发布出来的,onEvent就会在这个线程中运行,也就是说发布事件和接收事件线程在同一个线程

[Vue]子组件与父组件之间传值

血红的双手。 提交于 2019-12-24 17:24:24
1.父组件与子组件传值props 1.1定义父组件,父组件传递 inputText这个数值给子组件: //父组件 //引入的add-widget组件 //使用 v-bind 的缩写语法通常更简单: <add-widget :msg-val="msg"> //这里必须要用 - 代替驼峰 // HTML 特性是不区分大小写的。所以,当使用的不是字符串模板,camelCased (驼峰式) 命名的 prop 需要转换为相对应的 kebab-case (短横线隔开式) 命名,当你使用的是字符串模板的时候,则没有这些限制 </add-widget> data(){ return { msg: [1,2,3] }; } 1.2定义子组件,子组件通过 props方法获取父组件传递过来的值。props中可以定义能接收的数据类型,如果不符合会报错。 //子组件通过props来接收数据: //方式1: props: ['msgVal'] //方式2 : props: { msgVal: Array //这样可以指定传入的类型,如果类型不对,会警告 } //方式3: props: { msgVal: { type: Array, //指定传入的类型 //type 也可以是一个自定义构造器函数,使用 instanceof 检测。 default: [0,0,0] //这样可以指定默认的值 } } //注意

Vue组件通信之非父子组件传值

拈花ヽ惹草 提交于 2019-12-18 05:41:29
前言: 如果想要了解非父子关系的组件传值,最好是在了解父传子和子传父的基础上在来了解非父子传值可能会有更透彻的思路。 因为非父子传值是通过定义事件总线来代理实现父传子+子传父从而实现的传值方式。 这是我总结的父子传值相关的知识,可供参考: https://www.cnblogs.com/ViavaCos/p/11712131.html 然后大概回顾一下父子传值的过程: 根据上述信息可知,如果两个组件需要传递值那么需要这两个组件之间是父子关系才能传递数据。 那么如果有这样一个组件,既可以帮你传递数据,又可以帮你接收数据该多好啊? 于是乎,一个叫事件总线的概念出现了,它就可以帮助实现你想要的这些功能。 了解事件总线之前,需要先看下两个重要的方法。 前置知识: 1. $emit(event, data)方法   event: 触发的事件类型   data: 触发这个事件时传递的参数 2. $on(event, callBack(data))方法   event: 绑定的事件类型   callBack: 绑定的这个事件所对应的回调函数,其默认的第一个参数data是使用$emit触发这个事件时所传递的参数 在了解了这两个方法后,再来看下面的这张图: 如果还是不太明白,那就转换成代码在分析一下: 首先,定义一个eventBus: // eventBus.js // 事件总线:

Android EventBus 3.0.0 使用总结

萝らか妹 提交于 2019-12-18 02:22:53
转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/6039221.html 本文出自 【赵彦军的博客】 前言 EventBus框架 EventBus是一个通用的叫法,例如Google出品的Guava,Guava是一个庞大的库,EventBus只是它附带的一个小功能,因此实际项目中使用并不多。用的最多的是greenrobot/EventBus,这个库的优点是接口简洁,集成方便,但是限定了方法名,不支持注解。另一个库square/otto修改自 Guava ,用的人也不少。所以今天我们研究的目标是greenrobot的EventBus. EventBus 简介 1、EventBus3.0.0 是最新的版本。 2、EventBus 是Android 发布/订阅事件总线,可简化 Activities, Fragments, Threads, Services 等组件间的消息传递。 3、可替代 Intent, Handler, BroadCast ,接口等传统方案,更快,代码更小,50K 左右的 jar 包,代码更优雅,彻底解耦。 github地址:https://github.com/greenrobot/EventBus EventBus原理图 如何添加依赖 在module的build.gredle 文件中的dependencies标签中添加

004-行为型-03-观察者模式(Observer)

99封情书 提交于 2019-12-17 20:25:54
一、概述   当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。   定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新。   Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。 1.1、适用场景   一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。   关联行为场景,建立一套触发机制 典型应用   1、侦听事件驱动程序设计中的外部事件   2、侦听/监视某个对象的状态变化   3、发布者/订阅者(publisher/subscriber)模型中,当一个外部事件(新的产品,消息的出现等等)被触发时,通知邮件列表中的订阅者 1.2、优缺点 优点: 观察者和被观察者之间建立一个抽象的耦合 观察者模式支持广播通信,建立一套触发机制。 缺点: 观察者之间有过多的细节依赖、提高时间消耗及程序复杂度 使用要得当,要避免循环调用 1.3、类图角色及其职责      1、Subject(被观察者)   被观察的对象。当需要被观察的状态发生变化时,需要通知队列中所有观察者对象。Subject需要维持(添加,删除,通知)一个观察者对象的队列列表。    2