Picasso 2.5.2图像未加载网络策略

时间:2016-04-18 11:55:47

标签: android picasso

我正在尝试从网址加载图片,但添加了授权令牌。如果我添加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();
                    }
                });

2 个答案:

答案 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 );
                    }
                } );