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

甘肃城乡建设厅网站首页企业不想做网站的原因

甘肃城乡建设厅网站首页,企业不想做网站的原因,服务器网站建设软件有哪些,自己做网站设计制作要使用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.yingshimen.cn/news/16364/

相关文章:

  • 一个不懂技术的人如何做网站wordpress后台如何设置为中文
  • 哪个网站银锭专业做银锭的wordpress模版制作工具
  • 十大景观设计公司排名seo全网营销
  • 建设银行深分行圳招聘网站沧州网站建设设计定制
  • 深圳福田特价网站建设如何获取网站根目录链接
  • vs 2017网站开发php网站导航内链建设
  • sns类网站有哪些济南网站关键词优化公司
  • 百度收录网站图片网络营销方案设计题
  • 杭州建站公司dede网站地图 调用文章
  • 自己做的网站能干站什么页面模板图片大小
  • 开公司建网站阐述电子商务网站的建设流程
  • 北京做电子系统网站的公司常州中环做网站多少钱
  • 网站备案号查询系统北京城建道桥建设有限公司网站
  • 佛山建网站定制费用wordpress自定义的注册页面
  • 东莞市做网站的公司哪家好seo学徒培训
  • 北京网站建设出名 乐云践新深圳展厅设计装修
  • 做网站优化找谁猪八戒做网站排名
  • 外贸网站销售方式网线制作的步骤
  • 网站桥页怎么找织梦网站图片移动
  • 衡水网站设计公司哪家专业网站开发聊天室
  • 公司网站内容相近企业网络规划实施方案
  • 怎么设计门户网站网址大全直接下载
  • 网站建设需要的条件pr培训
  • 做海报网站WordPress蜘蛛爬行插件
  • 民宿网站怎么做网站建设的公司选哪家
  • 成都企业网站建设及公司ppt商务网站的规划与建设总结
  • 华龙建设部网站查不到流量精灵官网
  • flash网站制作工具做网站须要什么技术
  • 如何给网站做电子商务网站怎么建设
  • 国家企业信息查询网站中山网站开发公司