【发布时间】:2017-08-25 06:44:18
【问题描述】:
我正在使用 Retrofit 库来解析 JSON 数据并将其填充到 RecyclerView 中。
但是,现在我想知道,我如何存储相同的数据以供离线使用,(即使互联网不可用)。
@Override
public void onResume() {
super.onResume();
subscription = sampleAPI.getSamples()
.cache()
.timeout(5000, TimeUnit.MILLISECONDS)
.retry(1)
.doOnUnsubscribe(new Action0() {
@Override
public void call() {
Log.d(getClass().getName(), "Called unsubscribe OnPause()");
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<SampleTypePojo>() {
@Override
public void call(SampleTypePojo jokesModel) {
sampleList = jokesModel.getValue();
displaySampleList(sampleList);
}
}, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
Log.e(getClass().getName(), "ERROR: " + throwable.getMessage());
throwable.printStackTrace();
}
}
);
}
private void getSampleData() {
if (sampleAPI == null) {
sampleAPI = new RestAdapter.Builder()
.setEndpoint(Constants.BASE_URL)
.setLogLevel(RestAdapter.LogLevel.FULL)
.build()
.create(SampleAPI.class);
}
}
应用级别: build.gradle
dependencies {
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'io.reactivex:rxjava:1.0.4'
compile 'io.reactivex:rxandroid:0.24.0'
}
【问题讨论】:
-
使用 sqlite 数据库
-
你可以使用 sql lite 或 relm 数据库
-
我相信可以在 Retrofit 本身中缓存数据以供离线使用...
-
A video recap 你想得到什么。
标签: android android-recyclerview retrofit