【问题标题】:How does Twitter App in Android cache/store tweets in the listview?Android 中的 Twitter 应用程序如何在列表视图中缓存/存储推文?
【发布时间】:2018-06-04 01:28:37
【问题描述】:

在 Twitter Android 应用程序中,一旦列表视图填充了从服务器下载的推文/项目,它就不再与服务器对话以再次获取它们。即使你杀死了应用程序并重新启动它,它仍然会检索到相同的旧数据。twitter 是如何存储这么多数据的。是使用数据库,将所有下载的数据存储在文件中还是缓存。

在我的应用程序中,我有类似的要求。现在我将下载的列表视图数据存储在一个文件中,然后在应用程序重新启动时读取它。是否有更好的方法或遵循的模式。 谢谢。

【问题讨论】:

  • 看看 SQLLite ;)
  • @user1281750 SQLLite 的性能如何。您认为 Twitter 使用的是相同的技术吗?正如我已经说过的,我将数据存储在一个文件中,你认为 SQLLite 会是一个更好的解决方案吗?我还没有看到文件存储有任何性能问题,因为我的项目不超过 20 个。

标签: android caching


【解决方案1】:

有三种方法可以在客户端保存/持久化数据。这些是:

  1. SharedPreferences(不符合要求)
  2. 文件 I/O
  3. SQLLite 数据库

据我所知,文件 I/O 和 SQLLite 之间的性能差别不大。但是 SQLLite 还有很多其他的优点。

  1. 您可以查询数据库,这比使用file-I/O自己编写更容易
  2. 数据处理更轻松,痛苦更少(删除/更新记录等)
  3. 支持数据之间的关系!

底线,选择 SQLLite,设置似乎需要更多工作,但您将来会从中受益。

【讨论】:

  • 对于我的具体要求,保存文件就可以了。但我想知道的是关于 HTTP 响应中的“缓存”技术。它是默认启用的,它实际上是如何工作的?有什么相关的教程吗?
  • 一切都取决于后端系统的架构。例如。如果他们遵循 REST 约定,那么当您使用 If-Modified-Since 执行 GET 请求时,他们将实施 304 - NOT MODIFIED 标头。了解这些技术的最好方法是阅读书籍和手工学习,大多数时候你应该自己实现这些,有时你可以使用库(这一切都取决于你的后端交互/架构)
猜你喜欢
  • 2014-01-03
  • 1970-01-01
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
相关资源
最近更新 更多