配置:
compile ‘com.squareup.retrofit2:converter-gson:2.0.2’
compile ‘com.squareup.retrofit2:adapter-rxjava:2.0.2’
compile ‘io.reactivex:rxjava:1.1.3’
compile ‘io.reactivex:rxandroid:1.1.0’
compile ‘com.squareup.retrofit2:retrofit:2.0.2’
compile ‘com.jakewharton.rxbinding:rxbinding:0.4.0’
1、创建Retrofit
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BaseUrl)
.addConverterFactory(GsonConverterFactory.create())//添加GSON解析
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())//把Call<>转换成Observable
.build();
JokeService jokeService = retrofit.create(JokeService.class);
Observable<Joke> observable = jokeService.getJoke("18544","b4c2e38ed282419fb3676204abb0ed1c");
observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<Joke>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Joke joke) {
}
});
2、创建Service
public interface JokeService {
@GET("341-2")//retrofit接收
Call<Joke> loadjoke(@Query("showapi_appid") String id,@Query("showapi_sign") String sign);
@GET("341-2")//rxjava接收
Observable<Joke> getJoke(@Query("showapi_appid") String id,@Query("showapi_sign") String sign);
}
3、消除手抖导致的连环点击
RxView.clicks(btnClick)
.throttleFirst(500, TimeUnit.MILLISECONDS)
.subscribe(new Action1<Void>() {
@Override
public void call(Void aVoid) {
}
});