【发布时间】:2013-01-21 03:39:44
【问题描述】:
我的应用程序的功能可以仿照wanelo 之类的东西。
用户将在一个活动中输入他们想要购买的搜索词。他们将获得与该搜索词匹配的项目列表。因此,ListView 将包含Items。 Item 有很多属性,主要有:
-
id- 对应于数据库中Item的 id -
date_modified- 知道Item是否更新的时间戳 -
remote_directory-Item的资产(如图标和其他图像)的基本目录的 URL。 URL 的格式如下:http://my.domain.com/items/a1bc234d/其中a1bc234d是随机生成的,由date_modified播种。 -
remote_dir_name-remote_directory的子字符串。在上面的例子中,这个值是a1bc234d。
从搜索结果列表中,用户可以标记要稍后查看的项目。这将触发几件事:
- 首先,我想将
Item广告到另一个ListView,代表用户“下载”的Items。 - 然后,我想实际下载
Item的所有数据:描述,remote_directory中的所有资产。这些东西被存储在我应用程序的内部存储文件夹中remote_dir_name:/data/data/my.app.package.name/files/a1bc234d/。
这些“下载”的项目旨在离线模式下查看。
此“已下载”ListView 对应于不同的 Activity,并且将具有显示Item 下载状态进度条的列表项。此外,这个ListView 应该是可编辑的:使用应该能够删除和重新排序列表中的Items。
最后,“下载的”ListView 需要持久化。它应该保持秩序。搜索结果的ListView 不需要保留。
我在弄清楚如何存储下载的Items 列表时遇到了很多麻烦。如果列表项正在下载,“下载”ListView 需要知道何时更新列表项的进度条。我认为将Items 存储在数据库中有点矫枉过正,因为我会不断更新一行的列,直到下载完成。我应该如何在这两个ListViews 之间传递这个下载状态信息?
【问题讨论】: