Если вы используете службу REST, вы можете прочитать эту статью о том, как использовать управление в автономном режиме с помощью Retrofit . Это разговор о клиенте, реализованном с использованием Retrofit. Если вы используете Volley, вы можете использовать эту статью, чтобы увидеть, как реализовать систему кеширования на основе OkHttp, которая также используется в Volley.
Я сообщу здесь часть кода. Прочитайте статью, чтобы получить весь код и адаптировать его под свои нужды.
// Add all interceptors you want (headers, URL, logging, stetho logs)
OkHttpClient.Builder httpClient = new OkHttpClient.Builder()
.addInterceptor(provideOfflineCacheInterceptor())
.addNetworkInterceptor(provideCacheInterceptor())
.cache(provideCache());
...
private Interceptor provideOfflineCacheInterceptor() {
return chain -> {
Request request = chain.request();
if (!isConnected()) {
CacheControl cacheControl = new CacheControl.Builder()
.maxStale(7, TimeUnit.DAYS)
.build();
request = request.newBuilder()
.removeHeader(HEADER_PRAGMA)
.removeHeader(HEADER_CACHE_CONTROL)
.cacheControl(cacheControl)
.build();
}
return chain.proceed(request);
};
}