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<Events, String> {
return StoreBuilder.parsedWithKey<String, BufferedSource, Events>()
.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. AND/OR规则:使用AND表示必须同时满足两个条件,使用OR表示只需要满足其中一个条件即可。 例子:apple AND orange OR banana 解释:这个搜索语句表示要搜索同时包含“apple”和“orange”,或者包含“banana”的结果。 2. 括号规则:使用括号来分组条件,以便更清楚地指定运算顺序。 例子:(apple OR orange) AND banana 解释:这个搜索语句表示要搜索同时包含“apple”或“orange”,并且包含“banana”的结果。 3. 引号规则:使用引号来指定一个完整的短语。 例子:“red apple” 解释:这个搜索语句表示要搜索包含短语“red apple”的结果,而不是单独搜索“red”或“apple”。 4. 减号规则:使用减号来排除某些结果。 例子:apple -pie 解释:这个搜索语句表示要搜索包含“apple”,但不包含“pie”的结果。 5. 星号规则:使用星号来代替任何单词或短语。 例子:*apple* 解释:这个搜索语句表示要搜索包含任何位置上的“apple”的结果,包括“pineapple”、“applesauce”等。 6. site规则:使用site:来限制搜索范围。 例子:site:nytimes.com apple 解释:这个搜索语句表示要在nytimes.com网站上搜索包含“apple”的结果。 7. filetype规则:使用filetype:来限制搜索结果的文件类型。 例子:apple filetype:pdf 解释:这个搜索语句表示要搜索包含“apple”的pdf文件。 8. intitle规则:使用intitle:来指定搜索结果中必须包含的关键词。 例子:intitle:apple pie 解释:这个搜索语句表示要搜索标题中包含“apple pie”的结果。 9. inurl规则:使用inurl:来指定搜索结果中必须包含的URL关键词。 例子:inurl:apple 解释:这个搜索语句表示要搜索URL中包含“apple”的结果。 10. related规则:使用related:来查找与指定网站相关的其他网站。 例子:related:nytimes.com 解释:这个搜索语句表示要查找与nytimes.com相关的其他网站。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值