我正在尝试从网址加载图片,但添加了授权令牌。如果我添加networkPolicy(NetworkPolicy.OFFLINE)
是否有任何问题,毕加索根本不想加载它?
我的代码:
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new Interceptor() {
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request newRequest = chain.request().newBuilder()
.addHeader("Authorization", "Bearer " + userPrefs.accessToken().get())
.build();
return chain.proceed(newRequest);
}
})
.build();
Picasso picasso = new Picasso.Builder(getActivity())
.downloader(new OkHttp3Downloader(client))
.build();
picasso
.load(URL)
.networkPolicy(NetworkPolicy.OFFLINE)
.into(ivUserImage, new Callback() {
@Override
public void onSuccess() {
Toast.makeText(getActivity(), "+", Toast.LENGTH_SHORT).show();
}
@Override
public void onError() {
Toast.makeText(getActivity(), "-", Toast.LENGTH_SHORT).show();
}
});
答案 0 :(得分:1)
是的,确实如此
我们有三个枚举传递给networkPolicy
NO_CACHE
跳过检查磁盘缓存并强制通过网络加载。
NO_STORE
跳过将结果存储到磁盘缓存中。
OFFLINE
仅通过磁盘缓存强制请求,跳过网络。
因此,如果我们使用 OFFLINE ,它将跳过网络。
另请阅读此API for Picasso
答案 1 :(得分:0)
使用离线策略的简便方法
Picasso.with( getApplicationContext() ).load( link ).networkPolicy( NetworkPolicy.OFFLINE ).placeholder( R.drawable.notification ).into( imageView, new Callback() {
@Override
public void onSuccess()
{
}
@Override
public void onError() {
Picasso.with( getApplicationContext() ).load( link ).placeholder( R.drawable.notification ).into( imageView );
}
} );