zoukankan      html  css  js  c++  java
  • Android RxJava小结

    一、如何使用

    在build.gradle中添加依赖

     1 dependencies {
     2     api 'io.reactivex:rxandroid:1.2.1'
     3     api 'io.reactivex:rxjava:1.3.0'
     4     implementation fileTree(include: ['*.jar'], dir: 'libs')
     5     implementation 'com.android.support:appcompat-v7:27.1.1'
     6     implementation 'com.android.support.constraint:constraint-layout:1.1.3'
     7     testImplementation 'junit:junit:4.12'
     8     androidTestImplementation 'com.android.support.test:runner:1.0.2'
     9     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    10 }

    这里有一个小坑,直接用latest.release没有办法用,不知道为什么

    二、代码实现

    2.1 使用just+Action1+Action0来实现

     1  Observable.just(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
     2                     .subscribeOn(Schedulers.io()) // Observable运行的线程
     3                     .observeOn(AndroidSchedulers.mainThread()) //监听者运行的线程
     4                     .subscribe(new Action1<Integer>() {
     5                         //onNext
     6                         @Override
     7                         public void call(Integer integer) {
     8                             log("call 1:" + integer);
     9                         }
    10                     }, new Action1<Throwable>() {
    11                         //onError
    12                         @Override
    13                         public void call(Throwable throwable) {
    14                             log("call 2");
    15                         }
    16                     }, new Action0() {
    17                         //onCompleted
    18                         @Override
    19                         public void call() {
    20                             log("call 3");
    21                         }
    22                     });

    运行结果如下,很简单,就不一一解释了。

     1 10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:1
     2 10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:2
     3 10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:3
     4 10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:4
     5 10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:5
     6 10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:6
     7 10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:7
     8 10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:8
     9 10-05 11:05:45.956 23619 23619 E MainActivity: yanlog msg:call 1:9
    10 10-05 11:05:45.956 23619 23619 E MainActivity: yanlog msg:call 1:10
    11 10-05 11:05:45.956 23619 23619 E MainActivity: yanlog msg:call 3

     2.2 使用Just+Subscriber来实现

    代码如下:

                Observable.just(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
                        .subscribeOn(Schedulers.io()) // Observable运行的线程
                        .observeOn(AndroidSchedulers.mainThread()) //监听者运行的线程
                        .subscribe(new Subscriber<Integer>() {
                            @Override
                            public void onCompleted() {
                                log("onCompleted");
                            }
    
                            @Override
                            public void onError(Throwable e) {
                                log("onError");
                            }
    
                            @Override
                            public void onNext(Integer integer) {
                                log("onNext:" + integer);
                            }
                        });

    运行结果如下:

     1 10-05 19:56:09.991   982   982 E MainActivity: yanlog msg:onNext:1
     2 10-05 19:56:09.991   982   982 E MainActivity: yanlog msg:onNext:2
     3 10-05 19:56:09.991   982   982 E MainActivity: yanlog msg:onNext:3
     4 10-05 19:56:09.992   982   982 E MainActivity: yanlog msg:onNext:4
     5 10-05 19:56:09.992   982   982 E MainActivity: yanlog msg:onNext:5
     6 10-05 19:56:09.992   982   982 E MainActivity: yanlog msg:onNext:6
     7 10-05 19:56:09.992   982   982 E MainActivity: yanlog msg:onNext:7
     8 10-05 19:56:09.992   982   982 E MainActivity: yanlog msg:onNext:8
     9 10-05 19:56:09.992   982   982 E MainActivity: yanlog msg:onNext:9
    10 10-05 19:56:09.992   982   982 E MainActivity: yanlog msg:onNext:10
    11 10-05 19:56:09.992   982   982 E MainActivity: yanlog msg:onCompleted
  • 相关阅读:
    解决AVAST杀毒软件导致系统启动缓慢的问题
    HTML 测验 1
    tar 命令详解
    Vmware 中Linux与Windows共享方法
    用VMtool Share功能编译内核导致失败的问题
    C盘空间不足的解决方法
    DNW下USB驱动故障的解决
    KDE vs. GNOME:一位用户的经验之谈
    NTFS压缩过程中电脑断电的问题
    Environment Setup Instruction[Android]
  • 原文地址:https://www.cnblogs.com/yanyojun/p/9745675.html
Copyright © 2011-2022 走看看