2015-05-06 28 views
0

我在我的应用程序实现的BitmapSpiceManagerBitmapRequest下载图像或从缓存中读取,如果已经下载。问题是遵循RoboSpice给出的例子,缓存只能在一个Activity内工作。如果结束该活动(例如回到前一个活动),然后再次启动该活动,则高速缓存不包含之前加载的内容(将其清除)。在Android应用程序广泛使用SpiceManager RoboSpice

我下,你有拥有BitmapSpiceManager,并从我的子类的活动基地活动的模式让我使用Manager的请求。这获取文件并将其缓存,我通过钩住删除ImageView的按钮然后再次尝试加载图像,证明它来自活动内的缓存。

是否有可能将图像缓存在另一个Activity中?我需要一个应用程序广泛的SpiceManager。理想情况下,缓存的项目可能会持续超出应用程序运行,即缓存几个小时。在应用程序中构建RoboSpice代码是否有比示例更好的方法?

如果我继承BitmapSpiceService和覆盖createCacheManager()计算方法,就是要帮助?我可以使用DiskLruCache,但BitmapSpiceService使用InFileBitmapObjectPersister这表示它将文件写出,所以我认为它是相同的。我不确定为什么缓存在活动消失时被清除。

回答

0

您在前几段中描述的行为完全是RoboSpice的工作原理。无论您在申请中有多少个SpiceManager,它们都将绑定到您的清单中声明的​​相同SpiceService。只要您在cacheExpiryDuration过期并使用相同的requestCacheKey之前调用SpiceManager.execute,数据将从缓存而不是网络返回。

您可以发布您用来发出请求的代码吗?

相关问题