android - 如何在android中缓存和存储对象并设置过期策略?

标签 android performance caching storage

我有一个从互联网获取数据的应用程序,为了获得更好的性能和带宽,我需要实现一个缓存层。

网上有两种不同的数据,一种每小时变化一次,另一种基本不变。所以对于第一类数据,我需要实现一个过期策略,让它在创建1小时后自动删除,当用户请求该数据时,我会先检查存储,如果没有找到再上网。

我考虑过使用 SharedPrefrence 或 SQLDatabase 来存储 json 数据或序列化对象字符串。

我的问题是:

1) 我应该使用什么,SharedPrefrence 或 SQLDatabase 或其他任何东西,一条数据并不大,但可能有很多该数据的实例。

2) 如何实现过期系统。

最佳答案

我会使用 SQLite 进行存储 + 在 Application 子类中有一个 last invalidated timestamp
它将在每次数据访问调用时与 System.currentTimeMillis() 进行比较,以确定是否应获取新集合。为此有一个薄的代理层。

关于android - 如何在android中缓存和存储对象并设置过期策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2755787/

相关文章:

java - 当应用程序在前台运行时使用挂起 Intent 或其他解决方案从主菜单打开特定选项卡

sql-server - 批量调用存储过程时SQLCLR状态持久化

c# - 使用 Entity Framework 进行缓存和延迟加载

java - Retrofit2 安卓 : Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $

java - 非常长的字符串作为 Web 服务的响应

java - 如何使用 JSoup 从 Android 中的 url 中的嵌入式 url 获取远程视频的直接链接?

Java 反射性能问题

java - Java 中最高效的多线程数据库插入

c# - mongoDB 像 SQL 一样运行查询!

http - ETag 与 header 过期