非常に遅い接続(GPRS)でディスクから画像をダウンロードしようとすると、非常に長く(約10分)、DISKから画像を取得する前にソケット例外が発生します。事前にPicasso SocketException
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.okhttp:okhttp:2.4.0'
OkHttpClient client = new OkHttpClient();
client.setCache(new Cache(context.getApplicationContext().getCacheDir(), Integer.MAX_VALUE));
client.setConnectTimeout(5, TimeUnit.SECONDS); // connect timeout
client.setReadTimeout(15, TimeUnit.SECONDS); // socket timeout
Picasso.Builder builder = new Picasso.Builder(this);
builder.downloader(new OkHttpDownloader(client));
Picasso built = builder.build();
built.setIndicatorsEnabled(BuildConfig.DEBUG);
built.setLoggingEnabled(BuildConfig.DEBUG);
Picasso.setSingletonInstance(built);
おかげ
PS:私の悪い英語
イメージをダウンロードしているサーバーから接続がリセットされています。 Picassoは一度イメージをダウンロードしてから、ディスクキャッシュにキャッシュします。ここで、最初の試行自体は遅い接続のために拒否されています。 – Kushan
接続のタイムアウト値を15分と増やしてみてください – Kushan
@クーガンありがとう、ありがとうございました。私はすでにイメージを初めてダウンロードしています。このエラーは、ディスクからイメージ(すでにダウンロード済み)を取得しようとする2回目に表示されます。 – Louis