Android RxJava 初步接触 observable类

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

public class RxUtil {
    private static  final  String TAG = RxUtil.class.getSimpleName();
    public static  void createObserverable(){
        //定义被观测者
        Observable observable = Observable.create(new Observable.OnSubscribe(){
            @Override
            public void call(Subscribersuper 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 showSub = new Subscriber() {
        @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(){
            @Override
            public void call(Subscribersuper String> subscriber) {
                if (!subscriber.isUnsubscribed()){
                    subscriber.onNext("hello");
                    subscriber.onNext("hi");
                    subscriber.onNext(testJson());
                    subscriber.onCompleted();
                }
            }
        }).subscribe(new Subscriber() {
            @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();
    }
}

<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>

—————————————————————————————————————————————————–

JAVA(SSM、SSH等)20项目视频教程,共134G

下载地址:

https://item.taobao.com/item.htm?id=558680925808

———————-课程目录——————————

第01项目:OA办公自动化项目(四套)
第02项目:CRM客户关系管理项目(两套)
第03项目:宅急送项目
第04项目:杰信商贸SSH版
第05项目:电力项目(两套)
第06项目:校内网项目
第07项目:Java邮件开发教程
第08项目:java网上在线支付实战视频
第09项目:俄罗斯方块游戏开发_视频教程
第10项目:交通灯管理系统视频教程
第11项目:银行业务调度系统视频教程
第12项目:供应链系统视频教程
第13项目:网上商城项目
第14项目:药品集中采购系统视频教程
第15项目:杰信商贸SSM版
第16项目:国家税务协同平台项目
第17项目:javaWeb聊天室
第18项目:点餐系统
第19项目:网上书店
第20项目:手机进销存系统
—————————————————————————————————————————————————–

你可能感兴趣的:(android,材料设计与RXJava)