我需要下載一個長長的30k機場列表並將其放置在離線數據庫中。如何從rxJava中提取並將其置於離線數據庫領域?
我做了這個代碼,從網絡上下載的JSON:
bFetch.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.baseUrl(GithubService.SERVICE_ENDPOINT).build();
GithubService service = retrofit.create(GithubService.class);
service.getAirport()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<List<Airport>>() {
@Override
public void onCompleted()
{
bClear.setText("OK");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(List<Airport> airports)
{
Log.d("msh",String.valueOf(airports.size()));
}
});
}
});
,它工作得非常好,但如果我想提取了一個對象,像地圖或flatMap,它給了我這樣的:
service.getAirport()
.map(new Func1<List<Airport>, Airport>()
{
@Override
public Airport call(List<Airport> airports) {
return null;
}
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<List<Airport>>() {
@Override
public void onCompleted()
{
bClear.setText("OK");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(List<Airport> airports)
{
Log.d("msh",String.valueOf(airports.size()));
}
});
}
});
與錯誤:
Cannot resolve method 'subscribe(anonymous rx.Subscriber>)
這樣:
- 我要做些什麼來解決它?我的問題是,我不明白rX,我也有點困惑
- 我可以把數據放在領域數據庫在map()方法(如果它的工作)?
謝謝
http://stackoverflow.com/documentation/android/3187/realm/14393/using-realm-with-rxjava#t=201608051116154137207 – EpicPandaForce
@EpicPandaForce我不明白如何做另一個訂閱,並在哪裏 – nani
那麼你在哪裏使用的數據從領域 – EpicPandaForce