-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Closed
Description
when I used "observable.subscribe(subscriber);", it show can't resolve method 'subscribe (org.reactivestreams.Subscribe<>). But when I used "observable.subscribe(observable);", it is right. My code is as follows:
Map<String, String> paramMap = new HashMap<>();
paramMap.put("user_name", "guojinjin");
paramMap.put("user_password", "1");
paramMap.put("user_language", "ZHS");
paramMap.put("is_ipad", "N");
paramMap.put("is_mobile", "Y");
Retrofit retrofit= new Retrofit.Builder()
.baseUrl("http://211.149.247.188/")
//增加返回值为String的支持
.addConverterFactory(ScalarsConverterFactory.create())
//增加返回值为Gson的支持(以实体类返回)
.addConverterFactory(GsonConverterFactory.create())
//增加返回值为Oservable<T>的支持
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
TestService testService = retrofit.create(TestService.class);
Observable<TestModel> observable = testService.getTestModel(paramMap);
Subscriber<TestModel> subscriber = new Subscriber<TestModel>() {
@Override
public void onSubscribe(Subscription s) {
}
@Override
public void onNext(TestModel course) {
Log.d("onNext", course.getEncryted_session_id());
}
@Override
public void onError(Throwable t) {
}
@Override
public void onComplete() {
}
};
observable.subscribeOn(Schedulers.newThread()).subscribe(subscriber);
Observer observer = new Observer<TestModel>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.i("onSubscribe", "onSubscribe");
}
@Override
public void onNext(TestModel testModel) { // 上面 subscriber.onNext(result)在这里回调
Log.i("onNext", testModel.getEncryted_session_id()+testModel.isSuccess());
}
@Override
public void onError(Throwable e) {
Log.i("onError", e.toString());
e.printStackTrace();
} // 上面subscriber.onError(new Throwable(msg))在这里回调
@Override
public void onComplete() {
Log.i("onComplete", "onComplete");
}
};
observable.subscribeOn(Schedulers.newThread()).subscribe(observer);
k4dima