Android RxJava 初步接触

来源:互联网 发布:天刀妖娆御姐捏脸数据 编辑:程序博客网 时间:2024/05/17 00:18

一、创建工具类
1)创建被观测者observable ,
2)然后创建消息订阅showSub
3)把showSub设置到observable

public class RxUtil {    private static  final  String TAG = RxUtil.class.getSimpleName();    public static  void createObserverable(){        //定义被观测者        Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>(){            @Override            public void call(Subscriber<? super String> subscriber) {                if (!subscriber.isUnsubscribed()){                    subscriber.onNext("hello");                    subscriber.onNext("hi");                    subscriber.onNext(testJson());                    subscriber.onCompleted();                }            }        });        observable.subscribe(showSub);    }    public static String testJson(){        return "json data test";    }    /**     * 消息订阅     */   private static Subscriber<String> showSub = new Subscriber<String>() {        @Override        public void onCompleted() {            Log.i(TAG, "onCompleted");        }        @Override        public void onError(Throwable e) {            Log.i(TAG, "onError");        }        @Override        public void onNext(String s) {            Log.i(TAG, "onNext:" + s);        }    };     /**     * 合成     */    public static  void printNext(){        Observable.create(new Observable.OnSubscribe<String>(){            @Override            public void call(Subscriber<? super String> subscriber) {                if (!subscriber.isUnsubscribed()){                    subscriber.onNext("hello");                    subscriber.onNext("hi");                    subscriber.onNext(testJson());                    subscriber.onCompleted();                }            }        }).subscribe(new Subscriber<String>() {            @Override            public void onCompleted() {                Log.i(TAG, "onCompleted");            }            @Override            public void onError(Throwable e) {                Log.i(TAG, "onError");            }            @Override            public void onNext(String s) {                Log.i(TAG, "onNext:" + s);            }        });    }}

二、测试:

public class RxActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_rx);    }    public void createRx(View view){        RxUtil.createObserverable();    }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textAppearance="?android:attr/textAppearanceLarge"        android:text="Large Text"        android:id="@+id/textView2"        android:layout_gravity="center_vertical"        android:layout_weight="0.96" />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="create"        android:id="@+id/button"        android:onClick="createRx"        android:layout_weight="0.07" /></LinearLayout>
0 0