ネットワーク データを取得するための設計として、Google の Volley Library を使用しています。
RequestQueue を設定しました
requestQueue = new RequestQueue(new DiskBasedCache(new File(context.getCacheDir(),
DEFAULT_CACHE_DIR)), new BasicNetwork(new
HttpClientStack(AndroidHttpClient.newInstance(userAgent))));
また、Request をサブクラス化し、ネットワークから正常にデータが戻ってくるようにしました。私の問題はキャッシングにあります: parseNetworkResponse() で、呼び出したときに Request のサブクラスでオーバーライドされます
return Response.success(list, HttpHeaderParser.parseCacheHeaders(response));
HttpHeaderParser.parseCacheHeaders(response) は、サーバーが応答ヘッダーで「キャッシュなし」に設定されているため、null を返します... とにかく、このデータを可変セット時間 (おそらく 24 時間) の間キャッシュしたいのですが、どうすればよいですか?ボレー Cache.Entry を作成することでこれを行います... URL がキャッシュ キーの値として使用されることを理解しています (それを URL にしたいと思います)。
要約すると、HttpHeaderParser.parseCacheHeaders(response) は null を返すため、24 時間後に有効期限が切れるように設定された新しい Cache.Entry を作成し、キャッシュ キーがリクエストの URL になるようにしたいと思います。
何かご意見は?
ありがとう!