您的位置:首页 > 移动开发 > Android开发

Android中rxjava2的基本使用

2017-01-15 17:42 169 查看
  1.添加rx-java2的依赖库

    compile 'io.reactivex.rxjava2:rxjava:2.0.0-RC5'

    compile 'io.reactivex.rxjava2:rxandroid:2.0.0-RC1'

 2.核心代码

package android.test.zhh.com.rxjava2demo;

import android.app.Activity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;

public class MainActivity extends Activity {
private Button btnClick;
private TextView tvShow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
myOnclick();
}

/**
* 初始化控件
*/
private void initView(){
btnClick = (Button)findViewById(R.id.btnClick);
tvShow = (TextView)findViewById(R.id.tvShow);

}

/**
*点击事件
*/
private void myOnclick(){
btnClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//              订阅
//              拿到发送器对象
Observable<String> observable =getObservable();
//              拿到接受者对象
Observer<String> observer=getObserver();
//              把内容传到接受者当中
observable.subscribe(observer);

}
});
}

/**
* 消息发射器
*/
public Observable<String> getObservable(){
Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
e.onNext("我是翟浩浩1");
e.onComplete();
//              和onComplete互斥(调用onComplete,不在调用onComplete)

}
});
return observable;
}
/**
* 消息接受者
*/
public Observer<String> getObserver(){

Observer<String>observer=new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
Log.e("111","onSubscribe");
}

@Override
public void onNext(String value) {
tvShow.setText(value);
}

@Override
public void onError(Throwable e) {
Log.e("111","onError");
}

@Override
public void onComplete() {
Log.e("111","onComplete");
}
};
return observer;
}

}//class


 3.源码下载

   http://u.download.csdn.net/upload/success

4rxjava中文文档:

  https://github.com/mcxiaoke/RxDocs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: