-
关于函数在哪个线程执行: observeOn(AndroidSchedulers.mainThread())这个指定回调线程的 操作最好是放在最后的.subscribe(new Subscriber<String>之前。不然observeOn(AndroidSchedulers.mainThread())之后的map或者doOnNext()之类的函数都会在指定的mainThread中执行。
-
gradle配置 compile 'io.reactivex:rxandroid:1.2.1' compile 'io.reactivex:rxjava:1.1.6' compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.squareup.retrofit2:converter-scalars:2.1.0'//ConverterFactory的String依赖包 compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' public static final Retrofit retrofit=new Retrofit.Builder() .baseUrl(appUrlPay) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) //添加对字符串的转换,不然返回字符串,无法解析成Gson时会出错 .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create(GsonUtil.getGsonInstance())) .client(okHttpClient) .build();
-
关于onError: subscribe(new Action1<String>() 在请求网络onError的时候,app会闪退 subscribe(new Subscriber<String>()因为实现了onError方法,所以会走该方法而不会闪退。
当onError的时候,doOnNext()函数不会执行