RoboSpice缓存内存差异对象类型

时间:2014-01-16 17:10:17

标签: android robospice

看看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;
} 

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您应该创建自定义LruCacheXXXXObjectPersister并在自定义服务中注册它。了解如何使用位图完成任务,并为您自己的POJO保持相同的机制。