看看LruCacheObjectPersister.java,这是一个基于Android LRUCache的内存中对象持久化程序。我想扩展这个基类来缓存内存中String或位图旁边的任何pojos类。我的目标是在内存中执行多种请求并将结果放在缓存中,它看起来像这样:
class Request1 extends SpiceRequest<Book>{}
class Request2 extends SpiceRequest<Category>{}
getSpiceManager().execute(new Request1(), CACHE_KEY, 5 * DurationInMillis.ONE_MINUTE, new RequestListener<Book>(){});
getSpiceManager().execute(new Request2(), CACHE_KEY, 5 * DurationInMillis.ONE_MINUTE, new RequestListener<Category>(){});
我的问题是如何告诉缓存管理器应该在spice服务中支持这些类型:
@Override
public CacheManager createCacheManager(Application application) {
CacheManager cacheManager = new CacheManager();
// I want to store any types instead of bitmap
LruCacheBitmapObjectPersister lruCacheBitmapObjectPersister = new LruCacheBitmapObjectPersister(inFileBitmapObjectPersister, 1024*1024);
cacheManager.addPersister(inFileBitmapObjectPersister);
return cacheManager;
}
我该怎么做?
答案 0 :(得分:1)
您应该创建自定义LruCacheXXXXObjectPersister并在自定义服务中注册它。了解如何使用位图完成任务,并为您自己的POJO保持相同的机制。