当前位置: 首页 > news >正文

甘肃城乡建设厅网站首页用php 如何做网站

甘肃城乡建设厅网站首页,用php 如何做网站,网站建设尺寸像素是多少,建设网站怎么收费要使用Rxjava首先要导入两个包#xff0c;其中rxandroid是rxjava在android中的扩展 implementation io.reactivex:rxandroid:1.2.1implementation io.reactivex:rxjava:1.2.0observer 是一个观察者接口#xff0c;泛型T为观察者观察数据的类型#xff0c;里面只有三个方法其中rxandroid是rxjava在android中的扩展 implementation io.reactivex:rxandroid:1.2.1implementation io.reactivex:rxjava:1.2.0observer 是一个观察者接口泛型T为观察者观察数据的类型里面只有三个方法其中onError()和onCompleted()最后只能调用其中一个调用了此二方法后onNext()将不会在调用 onNext()方法可以调用0到多次观察到的数据处理在此实现。 /*** Provides a mechanism for receiving push-based notifications.* p* After an Observer calls an {link Observable}s {link Observable#subscribe subscribe} method, the* {code Observable} calls the Observers {link #onNext} method to provide notifications. A well-behaved* {code Observable} will call an Observers {link #onCompleted} method exactly once or the Observers* {link #onError} method exactly once.** see a hrefhttp://reactivex.io/documentation/observable.htmlReactiveX documentation: Observable/a* param T* the type of item the Observer expects to observe*/ public interface ObserverT {/*** Notifies the Observer that the {link Observable} has finished sending push-based notifications.* p* The {link Observable} will not call this method if it calls {link #onError}.*/void onCompleted();/*** Notifies the Observer that the {link Observable} has experienced an error condition.* p* If the {link Observable} calls this method, it will not thereafter call {link #onNext} or* {link #onCompleted}.** param e* the exception encountered by the Observable*/void onError(Throwable e);/*** Provides the Observer with a new item to observe.* p* The {link Observable} may call this method 0 or more times.* p* The {code Observable} will not call this method again after it calls either {link #onCompleted} or* {link #onError}.** param t* the item emitted by the Observable*/void onNext(T t);} 使用Observer接口创建一个观察者 ObserverString observer new ObserverString() {Overridepublic void onCompleted() {ILog.LogDebug(observer onCompleted is come in);}Overridepublic void onError(Throwable e) {ILog.LogDebug(observer onError is come in);}Overridepublic void onNext(String s) {ILog.LogDebug(observer onNext is come in s s);}};Subscriber 为Observer的一个抽象实现类 public abstract class SubscriberT implements ObserverT, Subscription{}使用Subscriber 创建一个观察者 SubscriberString subscriber new SubscriberString() {Overridepublic void onCompleted() {ILog.LogDebug(subscriber onCompleted is come in);}Overridepublic void onError(Throwable e) {ILog.LogDebug(subscriber onError is come in);}Overridepublic void onNext(String s) {ILog.LogDebug(subscriber onNext is come in s s);}Overridepublic void onStart() {super.onStart();}};其中onStart()方法它会在事件还未发送之前被调用可以用于做一些准备工作。例如数据的清零或重置。这是一个可选方法默认情况下它的实现为空。 Observable被观察者也叫事件发生源它决定什么时候触发事件以及触发怎样的事件。 public class ObservableT { }Observable 可以使用Observable.create()方法创建 ObservableString observable Observable.create(new Observable.OnSubscribeString() {Overridepublic void call(Subscriber? super String subscriber) {subscriber.onNext(observable call onNext0);subscriber.onStart();subscriber.onNext(observable call onNext);subscriber.onCompleted();subscriber.onNext(observable call onNext1);}});也可以使用just和from方法创建 ObservableString observable Observable.just(observable call onNext,observable call onNext1);String[] array {observable call onNext,observable call onNext1}; ObservableString observable2 Observable.from(array);那么just,from之间的区别是什么呢通过查看Observable源码,just方法内部也是调用的from方法。 public class ObservableT {....public static T ObservableT just(T t1, T t2) {return from((T[])new Object[] { t1, t2 });}.... } 观察者和被观察者之间的绑定 observable.subscribe(subscriber);Rxjava的不完整回调Action Action后的数字代表回调的参数类型数量 Action1String onNextAction new Action1String() {Overridepublic void call(String s) {ILog.LogDebug(onNextAction onNext s s);}};Action2String,String action2 new Action2String, String() {Overridepublic void call(String s, String s2) {}};Action1Throwable throwableAction1 new Action1Throwable() {Overridepublic void call(Throwable throwable) {ILog.LogDebug(throwableAction1 call);}};Action0 onCompleteAction new Action0() {Overridepublic void call() {ILog.LogDebug(onCompleteAction is come in);}};//调用方法observable.subscribe(onNextAction);observable.subscribe(onNextAction,throwableAction1);observable.subscribe(onNextAction,throwableAction1,onCompleteAction);那么Rxjava的内部是怎么使用action的呢 通过源码可以看到 public class ObservableT {......public final Subscription subscribe(final Action1? super T onNext, final Action1Throwable onError) {if (onNext null) {throw new IllegalArgumentException(onNext can not be null);}if (onError null) {throw new IllegalArgumentException(onError can not be null);}Action0 onCompleted Actions.empty();return subscribe(new ActionSubscriberT(onNext, onError, onCompleted));}......public final Subscription subscribe(Subscriber? super T subscriber) {return Observable.subscribe(subscriber, this);}...... } 最后调用了 subscribe()方法 而 subscribe()方法参数是Subscriber通过查看ActionSubscriber源码可知还是将action作为参数 最后转成了Subscriber对象 public final class ActionSubscriberT extends SubscriberT {final Action1? super T onNext;final Action1Throwable onError;final Action0 onCompleted;public ActionSubscriber(Action1? super T onNext, Action1Throwable onError, Action0 onCompleted) {this.onNext onNext;this.onError onError;this.onCompleted onCompleted;}Overridepublic void onNext(T t) {onNext.call(t);}Overridepublic void onError(Throwable e) {onError.call(e);}Overridepublic void onCompleted() {onCompleted.call();} }同理当我们使用Observer接口生成匿名类时然后再调用 observable.subscribe(observer);进行绑定也是将Observer转换成Subscriber对象源代码如下 public class ObservableT {......public final Subscription subscribe(final Observer? super T observer) {if (observer instanceof Subscriber) {return subscribe((Subscriber? super T)observer);}if (observer null) {throw new NullPointerException(observer is null);}return subscribe(new ObserverSubscriberT(observer));}......}public final class ObserverSubscriberT extends SubscriberT {final Observer? super T observer;public ObserverSubscriber(Observer? super T observer) {this.observer observer;}Overridepublic void onNext(T t) {observer.onNext(t);}Overridepublic void onError(Throwable e) {observer.onError(e);}Overridepublic void onCompleted() {observer.onCompleted();} }
http://www.hkea.cn/news/14478615/

相关文章:

  • 官方网站数据如何做脚注温岭市住房和城乡建设规划局网站
  • 网站淘客怎么做北京网站建设降龙网络
  • wordpress仿站步骤关于写策划的一个网站
  • 在线html网站开发要找企业做网站应该注意什么
  • 南昌网站建设报价医疗企业vi设计公司
  • 克隆网站模板千助网站公司
  • 商业网站的设计与推广系统北京高端建
  • 强的网站建设明细报价表产品销售网站模块如何设计
  • 番禺建设网站外包阳江招聘
  • 网站上的产品五星怎样做优化青岛专业网站推广设计公司
  • php网站开发用什么软件中国企业信息公示网登录
  • 广州金将令做网站怎么样网站开发服务外包合同
  • 泰州网站制作策划最近时政新闻
  • 您身边的网站建设专家python自学视频教程
  • 如东建设局网站wordpress主题seven
  • 国外网站推广国内最新新闻热点事件摘抄
  • 长沙商城网站制作自己做的网站不满屏
  • 大学网站建设招标南山商城网站建设哪家服务周到
  • 做网站的公司市场用户体验设计书籍
  • 网站建设高级wordpress编辑器自动加p标签
  • 昆明做整站优化温州市网站
  • 德州网站建设费用国外超酷设计网站
  • 网站建设公司营业执照图片熊掌号做网站推广的注意事项
  • 网站建设公司大全asp手机网站管理系统
  • 电子商务网站建设与管理的论文重庆网站推广报价
  • 国外做宠物用品的网站网站建设情况说明总结
  • 德州市建设工程质量监督站网站wordpress带支付功能主题
  • 设计汽车网站德阳北京网站建设
  • zhihu网站建设东莞模板建站软件
  • 三河市城乡建设局网站cms网站模板套用教程