【发布时间】:2014-09-20 10:49:10
【问题描述】:
我有以下场景:
- 我开发了一个在 MainActivity 中有一个 ListView 的 Android 应用程序
- 用于填充 ListView 的数据来自返回 JSON 数据的 URL
- 我想尽可能长时间地“缓存”ListView 项目(取决于 URL 资源的缓存控制标头),这意味着我不想每次都重新加载 ListView 数据(来自外部 URL)用户返回 MainActivity
我发现这篇文章:Android AsyncTask ListView - JSON|Surviving w/ Android 这很好,但不是我想要的。我不想每次用户回到 MainActivity 时都执行 AsyncTask。
我想将 ListView 项目存储在应用程序的全局可用参数中。然后,此参数将是某种自定义容器,其中包含 ListItems 和它们过期的时间戳。如果 ListView 项目有效,则可以检查 AsyncTask 的“doInBackground”方法。如果是则返回,否则从 URL 加载并保存到全局变量中。
我的问题:这个解决方案有意义吗?你会如何解决这个问题?有什么想法可以让它变得更好吗?
【问题讨论】:
-
我认为当用户来到您的列表活动时,您已经检查了更新或最新的数据,这有两种可能性 1.如果第一次加载列表数据而不是用户必须等到从服务器加载数据并缓存在数据库和 2.检查来自服务器的最新或更新数据此检查在后台用户 ui 中运行不会阻止从本地缓存提供的此数据。
-
我不想在数据库中缓存 JSON 数据。我不需要持久存储数据。在每个应用程序启动时,我都会再次从 URL 下载数据。这是因为最新的原因。我也不需要将数据从 JSON 同步到数据库。这将是不必要的开销。
标签: android json android-listview android-asynctask