美文网首页
Rxjava 认识2

Rxjava 认识2

作者: dev晴天 | 来源:发表于2018-08-15 11:02 被阅读0次
 //二  rxjava的不完整定义回调  rxjava会根据自定义创建出Subscriber观察者

        /*
        * 生命周期的不完全回调
        *  ActionX  x=? 就表示?个范型参数
        *
        * */

        Action1<String>action1 = new Action1<String>() {
            @Override
            public void call(String s) {
                // 不完全的回调 带参数 相当于执行 onnext 回调方法
                Log.i(TAG, "call: 不完全回调"+s);
            }
        };

        Action1<Throwable>action11 = new Action1<Throwable>() {
            @Override
            public void call(Throwable throwable) {
              // 相当于执行了 onError
            }
        };

        Action0 action0 = new Action0() {
            @Override
            public void call() {
               // 相当于执行了 onComplete
            }
        };


        // 调用即可
        observable.subscribe(action1);
        observable.subscribe(action1,action11);
        observable.subscribe(action1,action11,action0);


 // 不完全回调的案例  打印字符串数组
        String[] name={"Tom","jerry","kate"};
        //几个对象相当于被观察者调用onnext几次
        // 例如subscriber.onNext("hello"); subscriber.onNext("world");

        Observable.from(name).subscribe(new Action1<String>() {
            @Override
            public void call(String s) {
                // 此处被观察者执行的操作 在观察者的回调中都可以看到 及使用
                Log.i(TAG, "call: "+s);
            }
        });

        // 不完全回调案例 根据id 获取图片
        final int drawableRe = R.mipmap.ic_launcher;
        final ImageView imageView = new ImageView(this);
        Observable.create(new Observable.OnSubscribe<Drawable>() {
            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
            @Override
            public void call(Subscriber<? super Drawable> subscriber) {
                 Drawable drawable =  getTheme().getDrawable(drawableRe);
                 subscriber.onNext(drawable);
                 subscriber.onCompleted();
            }
        }).subscribe(new Observer<Drawable>() {
            @Override
            public void onCompleted() {

            }

            @Override
            public void onError(Throwable throwable) {

            }

            @Override
            public void onNext(Drawable drawable) {
              imageView.setImageDrawable(drawable);
                Log.i(TAG, "onNext: "+"图片设置成功");
            }
        });

相关文章

网友评论

      本文标题:Rxjava 认识2

      本文链接:https://www.haomeiwen.com/subject/gobibftx.html