0
我正在嘗試做一個示例Rxjava-Retrofit應用程序。我有獲取從OpenWeatherMapRx-Java Retrofit沒有得到任何迴應
我改造的API接口看起來像這樣
public interface ApiInterface {
@GET("data/2.5/weather?appid=11111111111")
Observable<WeatherData> getWeather(@Query("q") String place);
}
用戶在編輯文本鍵入地名用戶輸入的位置的天氣信息的API,基於輸入地名我會打電話給API。這裏是我的整個代碼
BehaviorSubject<String> mStringSubject = BehaviorSubject.create();
當
@Override
public boolean onQueryTextChange(String newText) {
mStringSubject.onNext(newText);
return true;
}
然後
mStringSubject
.debounce(500, TimeUnit.MILLISECONDS)
.doOnNext(s -> Log.d(TAG, s))
.flatMap(s -> mApiInterface.getWeather(s))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.onErrorReturn(throwable -> null)
.subscribe(new Observer<WeatherData>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.d(TAG, "onSubscribe: ");
}
@Override
public void onNext(@NonNull WeatherData weatherData) {
Log.d(TAG, "onNext: " + weatherData);
}
@Override
public void onError(@NonNull Throwable e) {
Log.d(TAG, "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete: ");
}
});
有什麼不對的代碼的用戶類型的東西嗎?出於某種原因,它不會在日誌中顯示任何內容。難道我做錯了什麼?
注:當我做
mStringSubject
.debounce(500, TimeUnit.MILLISECONDS)
.subscribe(s -> Log.d(TAG, s));
其正常打印的用戶輸入值。