我已经开发了一个android应用程序,需要使用rest API调用获取列表并在我的应用程序上显示。该列表会经常更新。我已经使用RxAndroid编写了以下代码并进行了改型以进行api调用:
private void fetchAllData() {
disposable.add(Observable.interval(0,60,TimeUnit.SECONDS).
subscribeOn(Schedulers.io()).
flatMap(i -> apiService.getData(fetchActiveData)).
observeOn(AndroidSchedulers.mainThread()).
subscribeWith(new DisposableObserver<DataResponse>() {
@Override
public void onNext(DataResponse dataResponse) {
Log.i(TAG, "The rest api was called again");
List<Data> dataList = dataResponse.getData();
displayData(dataList,false);
}
@Override
public void onError(Throwable e) {
Log.e(TAG, "The exception is thrown :: " + e.getMessage());
displayData(null,true);
fetchAllData();
}
@Override
public void onComplete() {
}
})
);
}
使用上述代码,我能够每60秒进行一次api调用并更新我的列表。如果有任何新项目未在应用程序上显示,那么我有逻辑显示通知。
要增强我的应用程序,我需要在应用程序关闭且未在后台运行时进行api调用。有人可以建议我如何使用RxJava实现这一目标。