zoukankan      html  css  js  c++  java
  • RXJAVA之创建被观察者

      RXJava中提供了多种创建数据源的方式

    使用create方法

    Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>(){
       @Override
       public void subscribe(ObservableEmitter<String> arg0) throws Exception {
        arg0.onNext("123");
        arg0.onComplete();
       }});

      通过create创建Observable,通过ObservableEmitter来发送消息。

    使用fromArray方法:

    Observable<String> observable = Observable.fromArray("123","456");

       通过fromArray快捷创建Observable,其会把参数通过onNext发送,最后执行onComplete方法。

    使用just方法:

    Observable<String> observable = Observable.just("123", "456");

      通过just快捷创建Observable,其效果与fromArray一样,底层通过fromArray实现。

    使用empty方法:

      创建一个什么都不做直接通知完成的Observable。

    使用error方法:

      创建一个什么都不做直接通知错误的Observable。

    使用timer方法:

      创建一个在给定的延时之后发射数据项为0的Observable<Long>。

    Observable<Long> observable = Observable.timer(5, TimeUnit.SECONDS);

    使用interval方法:

      创建一个按照给定的时间间隔发射从0开始的整数序列的Observable<Long>。

    Observable<Long> observable = Observable.interval(1, TimeUnit.SECONDS);

    使用range方法:

      创建一个发射指定范围的整数序列的Observable<Integer>

    Observable<Integer> observable = Observable.range(1, 10);

    使用defer方法:

    Observable<String> observable = Observable.defer(new Callable<ObservableSource<String>>(){
       @Override
       public ObservableSource<String> call() throws Exception {
        return Observable.just("123", "456");
       }});

      在订阅时通过callable创建一个Observable,为每个订阅的Observer创建一个单独的Observable。

  • 相关阅读:
    第二周课程进度
    Codeforces Round #479 (Div. 3) F. Consecutive Subsequence (简单dp)
    Codeforces Round #538 (Div. 2) C. Trailing Loves (or L'oeufs?) (分解质因数)
    Codeforces Round #162 (Div. 1) B. Good Sequences (dp+分解素数)
    Codeforces Round #552 (Div. 3) F. Shovels Shop (前缀和预处理+贪心+dp)
    桂林电子科技大学第三届ACM程序设计竞赛 G 路径
    Codeforces Round #551 (Div. 2) D. Serval and Rooted Tree (树形dp)
    Codeforces Round #324 (Div. 2) (哥德巴赫猜想)
    Codeforces Round #244 (Div. 2) C. Checkposts (tarjan 强连通分量)
    Codeforces Round #207 (Div. 1) A. Knight Tournament (线段树离线)
  • 原文地址:https://www.cnblogs.com/zhangwanhua/p/7591086.html
Copyright © 2011-2022 走看看