列表视图设计模式

时间:2010-08-29 17:04:25

标签: android listview

我有一个列表视图,所有列表项(文本)都需要从Web服务更新。我的应用程序可以查询Web服务以一次获取所有列表项,或者可以查询一次获取一个列表项。 我有以下查询 1)如果我查询Web服务一次获取所有列表项,则需要大约15秒才能下载并在List中显示它。用户可能认为该应用没有响应。 2)如果我查询每个列表项的Web服务,当用户向上或向下滚动时,会发送多个查询。所以我正在下载用户可能看不到的项目。如果列表向上滚动。

请为这种情况建议一个好的设计模式。

1 个答案:

答案 0 :(得分:1)

您可以做的是拥有以下

  • 在给定时间间隔内从您的网络服务下载新内容的背景Android service
  • 一个sqlite数据库,根据ContentProvider存储/提取数据库中的项目
  • 一个列表活动,用于从您编写的已注册的ContentProvider中检索项目上的游标

基本上,后台服务会通过您编写的ContentProvider将项目存储在本地sqlite数据库中。然后,活动将再次通过ContentProvider检索光标到项目。

这为您带来了好处

  • 使用游标和标准机制会很快
  • 如果他们暂时失去连接,用户仍会看到这些项目
  • 您的列表将自动刷新项目,在ContentProvider上注册为Observer