AS版使用需要导包
compile 'io.reactivex:rxandroid:1.1.0'
compile 'io.reactivex:rxjava:1.1.5'
基本操作(当前使用的lambda表达式写的)
1.延时2s执行相关操作。
    Observable.timer(2, TimeUnit.SECONDS)
       .subscribe(s -> System.out.println(s));
2.仅仅是输出Hello文字
    Observable.just("Hello").subscribe(s -> System.out.println(s));
3.简单网络访问(访问网络在子线程,显示数据在主线程)
    Observable.create(new Observable.OnSubscribe<List<UserModel>>() {
         @Override
         public void call(Subscriber<? super List<UserModel>> subscriber) {
             List<UserModel> user = new ArrayList<UserModel>();//访问网络获得数据
             try {
                 Thread.sleep(3000);//模拟访问网络延时问题。
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
             subscriber.onNext(user);//将获得的user集合传给下一级
         }
   })
   .flatMap(s -> Observable.from(s))//这里的s是user集合中的一个子项(类似于foreach操作)
   .filter(s -> s.getName().equals("畅畅"))//filter进行判断的操作。根据判断结果返回给下一项true或者false。
   .subscribeOn(Schedulers.io())//这个说明上面的一些列的操作都在io线程中执行
   .observeOn(AndroidSchedulers.mainThread())//下面的操作都在主线程执行,可以任意切换。
   .subscribe(s -> {
       //输出判断结果
   });
对了要想使用lambda表达式的话需要先具备几个条件(我只写在AS下面的)。

1.jdk必须大于等于1.8(查看方式cmd 然后输入,java -version 即可查看当前jdk版本)
2.在build.gradle(即app对应的)代码直接考进去就可以~~~

android {
 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
//下面代码直接放在跟android{}同级
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.3.0'
    }
}
repositories {
    mavenCentral()
}
apply plugin: 'me.tatarka.retrolambda'

按照上面的步骤你的as就可以使用lambda表达式进行编码了

iv.setOnClickListener(v -> Log.i("TAG","我是不是很简单!!!"));

如果你用了lambda的话你的代码至少少了1/6吧!要不你试试。其他用法请自行谷歌或者百度。

retrofit2+rxjava+lambda他们在一起出现什么神奇的事情呢~~

retrofit2只是对http进行了封装。访问网络的协议还是用的okhttp这块。下面先上引用

compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
//如果不用rxjava就删掉这一项吧。否则千万别忘了。后面告诉你们坑在哪里。
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'

基本使用

1.先声明一个接口
public interface GitHubAPI {
    //请求该接口:https://api.github.com/users/Finderchangchang
    @GET("users/{user}")
    Observable<UserModel> userInfo(@Path("user") String user);
}
2.初始化Retrofit,并执行查询操作。
Retrofit retrofit = new Retrofit.Builder()
   .client(client)//初始化Retrofit
   //设置baseUrl,注意,baseUrl必须后缀"/"
   .baseUrl("https://api.github.com/")
   .addConverterFactory(GsonConverterFactory.create())//解析数据用的工具,默认Gson
   .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//这就是那个坑,很多文章都少了一个引用。
   .build();

retrofit.create(GitHubAPI.class).userInfo("Finderchangchang")
   .subscribeOn(Schedulers.io())
   .observeOn(AndroidSchedulers.mainThread())
   .subscribe(userModel -> {
      Log.i("TAG", userModel.getBlog());
});

由于时间有限,就先写这么多。稍后会丰富文章的内容。