在 RoboSpice 的 Persistor 中加载所有缓存数据背后的基本原理?

Rationale behind loading all cache data in RoboSpice's Persistor?

正在编写自定义 Persistor 用于保存特定类型的数据对象,需要扩展 ObjectPersistor of Robospice

这两个方法需要实现的原因是什么?

@Override
public List<T> loadAllDataFromCache() throws CacheLoadingException {

}

@Override
public List<Object> getAllCacheKeys() {

}

磁盘缓存或任何底层对象存储都可能非常庞大。为什么 RoboSpice 要加载内存中的所有数据?

如果你按照调用层次结构,你会发现 loadAllDataFromCache() 仅被 com.octo.android.robospice.SpiceManager#getAllDataFromCache 间接使用。 对于getAllCacheKeys(),它是相似的-有com.octo.android.robospice.SpiceManager#getAllCacheKeys利用它。

这意味着通过实施这些方法来抛出一个 UnsupportedOperationException,您可能会过得很好。您还应该考虑用相同的逻辑覆盖 SpiceManager 的方法。