RxAndroid的使用方式
RxAndroid是RxJava的扩展, 可以优雅地处理异步请求. 以前的文章讲述过一些, 这次再补充些内容, 熟悉RxAndroid的使用方法.
对应github的网址
https://github.com/ReactiveX/RxJava
https://github.com/ReactiveX/RxAndroid
https://github.com/JakeWharton/butterknife
https://github.com/evant/gradle-retrolambda
添加Gradle配置
在app下的build.gradle如下:
{% highlight null %}
apply plugin: ‘android-apt’
android {
…
}
dependencies {
compile ‘io.reactivex:rxandroid:1.2.1’
compile ‘io.reactivex:rxjava:1.1.6’
compile ‘com.jakewharton:butterknife:8.2.1’
apt ‘com.jakewharton:butterknife-compiler:8.2.1’
}
{% endhighlight %}
在根目录下的build.gradle如下:
{% highlight null %}
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ‘com.android.tools.build:gradle:2.1.0’
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’
}
}
{% endhighlight %}
1.SimpleActivity
先定义全局变量
{% highlight java %}
Observable.OnSubscribe<String> mOnSubscribe;//观察者
Subscriber<String> mSubscriber1;//订阅者
Subscriber<String> mSubscriber2;
//ButterKnife控件查找
@BindView(R.id.textView)
TextView mTvText;
{% endhighlight %}
首先要绑定nutterknife,然后初始化对应观察者和订阅者,最后绑定到一起
{% highlight java %}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple);
ButterKnife.bind(this);
initObservable();
initSubscriber1();
initSubscriber2();
bindinit();
}
{% endhighlight %}
初始化的代码如下:创建一个观察者, 收到字符串的返回。创建两个订阅者, 使用字符串输出信息。
{% highlight java %}
private void initObservable(){
mOnSubscribe = new Observable.OnSubscribe() {
@Override public void call(Subscriber