2015-08-20 1 views
0

В моем приложении я использую пользовательский загрузчик для загрузки изображений, потому что сервер требует дополнительной авторизации в заголовке запроса. Я пытаюсь загрузить загруженные изображения в автономном режиме, но когда я использую этот пользовательский загрузчик, Picasso не загружает изображения. Кто-нибудь может помочь?Кэшированные изображения в автономном режиме загружаются с помощью пользовательского загрузчика

OkHttpClient picassoClient = new OkHttpClient(); 

    picassoClient.interceptors().add(new Interceptor() { 
             @Override 
             public Response intercept(Chain chain) throws IOException { 
              Request newRequest = chain.request().newBuilder() 
                .addHeader(RestUtils.HEADER, hash) 
                .build(); 
              return chain.proceed(newRequest); 
             } 
            } 

    ); 

    Picasso picasso = new Picasso.Builder(mContext) 
      .downloader(new OkHttpDownloader(picassoClient)).build(); 

    picasso.setIndicatorsEnabled(true); 
    picasso.invalidate(RestUtils.getUrl(url)); 

    if (DeviceUtility.isOnline(mContext)) { 
     picasso.load(RestUtils.getUrl(url)) 
       .networkPolicy(
         DeviceUtility.isOnline(mContext) ? 
           NetworkPolicy.NO_CACHE : NetworkPolicy.OFFLINE) 
       .resize(200, 200) 
       .centerCrop() 
       .into(viewHolder.mImgvPicture); 
    } else { 
     picasso.load(RestUtils.getUrl(url)) 
       .networkPolicy(
         DeviceUtility.isOnline(mContext) ? 
           NetworkPolicy.NO_CACHE : NetworkPolicy.OFFLINE) 
       .resize(200, 200) 
       .centerCrop() 
       .into(viewHolder.mImgvPicture); 
    } 

ответ

0

Вы аннулированию URL прямо перед тем, как его из кэша:

picasso.invalidate(RestUtils.getUrl(url)); 

Try недействительным только если устройство подключено.