zoukankan      html  css  js  c++  java
  • rxJava rxandroid 学习

    学习地址 很全面:

    http://blog.csdn.net/meegomeego/article/details/49155989

    final String[] words = {"Hello", "Hi", "Aloha"};
    
    Observable.from(words).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<String>() {
                @Override
                public void onCompleted() {
                    Logger.e("--->onCompleted");
                }
    
                @Override
                public void onError(Throwable e) {
    
                }
    
                @Override
                public void onNext(String s) {
                    Logger.e("--->onNext=="+s);
                }
            });
    
    //map() 方法将参数中的 String 对象转换成一个 Bitmap 对象后返回(事件对象的直接变换)
    
    Observable.just("xx").map(new Func1<String, Bitmap>() {
                @Override
                public Bitmap call(String s) {
                    return null;
                }
            }).subscribe(new Action1<Bitmap>() {
                @Override
                public void call(Bitmap bitmap) {
    
                }
            });
    
    //flatMap 返回Observable 对象 然后进行平铺下去
    ArrayList<PreSenterEntity> lists=new ArrayList<PreSenterEntity>();
            for (int i=0;i<10;i++){
                Owener owner= new Owener("name"+i,i);
                lists.add(new PreSenterEntity(i,"name"+i,owner));
            }
    
            Observable.from(lists).flatMap(new Func1<PreSenterEntity, Observable<Owener>>() {
                @Override
                public Observable<Owener> call(PreSenterEntity preSenterEntity) {
                    return Observable.from((Iterable<? extends Owener>) preSenterEntity.owner);
                }
            }).subscribe(new Subscriber<Owener>() {
                @Override
                public void onCompleted() {
    
                }
    
                @Override
                public void onError(Throwable e) {
    
                }
    
                @Override
                public void onNext(Owener owener) {
                    Logger.e(owener.id+"xxxx"+owener.login);
    
                }
            });
    • subscribeOn(): 指定 subscribe() 所发生的线程,即 Observable.OnSubscribe 被激活时所处的线程。或者叫做事件产生的线程。
    • observeOn(): 指定 Subscriber 所运行在的线程。或者叫做事件消费的线程。
    int drawableRes = ...;
    ImageView imageView = ...;
    Observable.create(new OnSubscribe<Drawable>() {
        @Override
        public void call(Subscriber<? super Drawable> subscriber) {
            Drawable drawable = getTheme().getDrawable(drawableRes));
            subscriber.onNext(drawable);
            subscriber.onCompleted();
        }
    })
    .subscribeOn(Schedulers.io()) // 指定 subscribe() 发生在 IO 线程
    .observeOn(AndroidSchedulers.mainThread()) // 指定 Subscriber 的回调发生在主线程
    .subscribe(new Observer<Drawable>() {
        @Override
        public void onNext(Drawable drawable) {
            imageView.setImageDrawable(drawable);
        }
    
        @Override
        public void onCompleted() {
        }
    
        @Override
        public void onError(Throwable e) {
            Toast.makeText(activity, "Error!", Toast.LENGTH_SHORT).show();
        }
    });

     创建Observable

    Observable.create(new Observable.OnSubscribe<Drawable>() {
                @Override
                public void call(Subscriber<? super Drawable> subscriber) {
                    Drawable drawable=null;
    
                    subscriber.onNext(drawable);
    
                    subscriber.onCompleted();
    
                }
            }).subscribe(new Observer<Drawable>() {
                @Override
                public void onCompleted() {
    
                }
    
                @Override
                public void onError(Throwable e) {
    
                }
    
                @Override
                public void onNext(Drawable drawable) {
    
                }
            });
  • 相关阅读:
    Delphi 2009 泛型容器单元(Generics.Collections)[5]: TObject...<T> 系列
    Delphi 2009 中 TStrings 与 TStream 的增强
    Delphi 2009 泛型容器单元(Generics.Collections)[4]: TDictionary<T>
    Delphi 2009 泛型容器单元(Generics.Collections)[1]: TList<T>
    Delphi 2009 中 string 与 Char 的改变
    Delphi 2009 的反射单元(ObjAuto):
    Delphi 2009 泛型容器单元(Generics.Collections)[3]: TStack<T>
    博客园电子期刊2010年4月刊发布啦
    上周热点回顾(5.105.16)
    上周热点回顾(4.265.2)
  • 原文地址:https://www.cnblogs.com/yujian-bcq/p/5210326.html
Copyright © 2011-2022 走看看