【发布时间】:2018-08-06 18:02:10
【问题描述】:
我想实现缓存,即使没有互联网连接(离线)但仍然没有成功,已经看了很多例子但仍然没有运气
//FeedInterceptor Class
public static Interceptor getOfflineInterceptor(final Context context){
Interceptor interceptor = new Interceptor() {
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (!isNetworkAvailable(context)) {
request = request.newBuilder()
.removeHeader("Pragma")
.header("Cache-Control", "public, only-if-cached")
.build();
}
return chain.proceed(request);
}
};
return interceptor;
}
//OnCreate Activity
client = new OkHttpClient.Builder()
.addNetworkInterceptor(FeedInterceptor.getOnlineInterceptor(this))
.addInterceptor(FeedInterceptor.getOfflineInterceptor(this))
.cache(cache)
.build();
//After build Request
Response response = client.newCall(request).execute();
return response.body().string();
如果离线,则返回为空字符串。 有什么我想念或错的吗?
【问题讨论】: