2

Robospice と Jackson + Spring を使用して REST リクエストを実行する Android アプリがあります。Robospice が応答をキャッシュしていないように見えることを除いて、これは機能しています。また、リクエスト間でキャッシュ キーが一貫していることも確認しました。

次のように SpiceManager を設定しています。

 private SpiceManager mRestManager = new SpiceManager(JacksonSpringAndroidSpiceService.class);

次に、次のようにリクエストを実行しています。

mRestManager.execute(customSpiceRequest, requestCacheKey, 
            DurationInMillis.ALWAYS, new CustomRequestListener())

関連するかどうかはわかりませんが、私の customSpiceRequest は SpringAndroidSpiceRequest を拡張しています。requestCacheKey がリクエスト間でも同一であることを確認しました。

リクエスト間のキャッシュを有効にするために他に何かする必要がありますか?

4

1 に答える 1

6

確かに、RoboSpice はあなたが求めていることを実行しています: 実行するパラメーターとして DurationInMillis.ALWAYS を渡します。

これは、キャッシュ内のデータが常に期限切れと見なされることを意味します。したがって、SpiceRequest は常にネットワーク呼び出しを実行します。実行を呼び出すときは、別の cacheDuration 値を使用する必要があります。

それ以来、Javadoc は拡張されています。

  • cacheExpiryDuration : キャッシュのコンテンツが期限切れと見なされるまでのミリ秒単位の期間。たとえば、DurationInMillis.ALWAYS は、キャッシュ内のデータが常に期限切れと見なされることを意味します。したがって、リクエストは常にネットワーク操作を実行して新しいデータを取得します。DurationInMillis.NEVER は、データが期限切れと見なされないことを意味します。リクエストはネットワーク操作を実行してデータを更新することはありませんが、常にキャッシュされたデータを返します。({@link DurationInMillis} を参照)。*
于 2013-02-03T10:06:09.253 に答える