对Android的RxJava用法的初步整理。针对事件序列的处理和再发送

compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.2'

1.map (数据类型转换 如:int -> String)

2.flatMap 重新返回一个 Observable.fromArray(arry)

1.map (数据类型转换 如:int -> String)

package com.archie.arrangeandroid;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import io.reactivex.Observable;import io.reactivex.Observer;import io.reactivex.android.schedulers.AndroidSchedulers;import io.reactivex.annotations.NonNull;import io.reactivex.disposables.Disposable;import io.reactivex.functions.Function;import io.reactivex.schedulers.Schedulers;public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    Integer[] integers = {1, 2, 3, 4, 5};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Observable.fromArray(integers)                .map(new Function() {                    /*map 数据类型转换 如:int -> String*/                    @Override                    public String apply(@NonNull Integer s) throws Exception {                        Log.i(TAG, "apply: " + s);                        return "map: " + s;                    }                })                .subscribeOn(Schedulers.io())                .observeOn(AndroidSchedulers.mainThread())                .subscribe(new Observer() {                    @Override                    public void onSubscribe(@NonNull Disposable d) {                        Log.i(TAG, "onSubscribe: " + "绑定前的操作");                    }                    @Override                    public void onNext(@NonNull String student) {                        Log.i(TAG, "onNext: " + student);                    }                    @Override                    public void onError(@NonNull Throwable e) {                        Log.i(TAG, "onError: " + "出现错误");                    }                    @Override                    public void onComplete() {                        Log.i(TAG, "onComplete: " + "已结束");                    }                });    }}

1) 输出如下

3A(ZXSM2RXQIFF0A_CP16WE.png

2. flatMap 重新返回一个 Observable.fromArray(arry)

需要二次请求数据的时候可用到

package com.archie.arrangeandroid;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import io.reactivex.Observable;import io.reactivex.ObservableSource;import io.reactivex.Observer;import io.reactivex.android.schedulers.AndroidSchedulers;import io.reactivex.annotations.NonNull;import io.reactivex.disposables.Disposable;import io.reactivex.functions.Function;import io.reactivex.schedulers.Schedulers;public class MainActivity extends AppCompatActivity {    class Student {        String name;        public Student(String name) {            this.name = name;        }        public String getName() {            return name;        }        public void setName(String name) {            this.name = name;        }    }    private static final String TAG = "MainActivity";    String[] strings = {"one", "two", "three", "four", "five"};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Observable.fromArray(strings)                .flatMap(new Function>() {                    /*flatMap 重新返回一个Observable*/                    @Override                    public ObservableSource apply(@NonNull String s) throws Exception {                        Student student = new Student(s);                        return Observable.fromArray(student);                    }                })                .subscribeOn(Schedulers.io())                .observeOn(AndroidSchedulers.mainThread())                .subscribe(new Observer() {                    @Override                    public void onSubscribe(@NonNull Disposable d) {                        Log.i(TAG, "onSubscribe: " + "绑定前的操作");                    }                    @Override                    public void onNext(@NonNull Student student) {                        Log.i(TAG, "onNext: " + student.getName());                    }                    @Override                    public void onError(@NonNull Throwable e) {                        Log.i(TAG, "onError: " + "出现错误");                    }                    @Override                    public void onComplete() {                        Log.i(TAG, "onComplete: " + "已结束");                    }                });    }}

1) 输出如下

0.png

更多相关文章

  1. android aidl浅析
  2. Android原生webview打开支付宝
  3. Android(安卓)-- Environment类
  4. android异步处理Handler+Thread使用进阶
  5. Android(安卓)NDK数据类型转换详解
  6. 9.1、Android中得到新打开Activity 关闭后返回的数据
  7. AndroidManifest.xml文件讲解
  8. 在开发过程中使用Android返回键
  9. listview所带来的滑动冲突

随机推荐

  1. Android(安卓)Fragment学习笔记(二)
  2. Android中防止Toast一直点击一直弹出
  3. Button 按下效果
  4. Android(安卓)spinner 样式及其使用详解
  5. Android官方推荐的集合类
  6. 解决小米手机Android(安卓)Studio安装app
  7. Android使用SharedPreferences实现数据存
  8. android 获取摄像头像素
  9. Android:实现Button点击事件的四种方式
  10. 系统相册分析(GallerPicker)