Android 使用 NYTimes Stores 缓存 network request

NYTimes Stores 是一个缓存库,在 2017年的 AndroidMakers 大会上被介绍过。

https://github.com/NYTimes/Store

实现一个 Disk Cache 需要以下几个步骤:

  1. 在 Retrofit 的 API 下

@GET("/v1/events")
Single getEventsResponseBody();
两点需要注意,一是要用 Single,而是要用 ResponseBody

  1. 创建 fetcher

private fun fetcher(): Single {
return service.getEventsResponseBody().map({ it.source() })
}

  1. 创建 Store

private fun provideStore(): Store {
return StoreBuilder.parsedWithKey()
.fetcher { fetcher() }
.persister(FileSystemPersister.create(FileSystemFactory.create(filesDir)) { key -> key })
.parser(JacksonParserFactory.createSourceParser(Events::class.java))
.open()
}

  1. 使用 Store

store.get("cache_key") // get or fetch

转载于:https://www.cnblogs.com/davesuen/p/9261188.html

你可能感兴趣的:(移动开发)