异步数据加载和缓存数据的库:Store
Store
Store是一个异步数据加载和缓存数据的库。
实现一个 Disk Cache 需要以下几个步骤:
在 Retrofit 的 API 下
@GET("/v1/events")
Single getEventsResponseBody();
两点需要注意,一是要用 Single,而是要用 ResponseBody
- 创建 fetcher
private fun fetcher(): Single {
return service.getEventsResponseBody().map({ it.source() })
}
创建 Storeprivate fun provideStore(): Store {
return StoreBuilder.parsedWithKey()
.fetcher { fetcher() }
.persister(FileSystemPersister.create(FileSystemFactory.create(filesDir)) { key -> key })
.parser(JacksonParserFactory.createSourceParser(Events::class.java))
.open()
}
- 使用 Store
store.get("cache_key") // get or fetch
Github地址:https://github.com/NYTimes/Store