在我的ListView - Android中从云中加载庞大的数据集

时间:2014-01-03 07:13:10

标签: android listview cloud

我已经阅读了许多提出类似问题的SO答案,但我相信我的问题不同。我必须从云中加载 70-80K 记录,并在ListView中将其显示给用户。我想做的一些事情:

  1. 我不想在用户滚动时使用更多Button加载或加载更多对象,因为我有来自AZ的索引,因此用户可以启动我的应用程序并单击Z和数据他应该在场/可以使用。

  2. 我考虑过使用启动画面预先获取数据,但我想知道是否真的有其他优化方法来获取如此庞大的数据。

  3. 我不想使用加载进度条挂起UI线程。

  4. 我同意这可能要求得太多,但我只是想看看是否有人有一种非常有效的方式来做到这一点。我对涉及Web服务后端修改的想法持开放态度,所以如果你有一个有效的方法来实现这一点,使用Web服务的一些修改,这对我来说也没关系。

    如果有帮助,请查看您的默认联系人应用,它会准备好所有数据,并在您打开时提供给您。您可以直接使用索引导航到Z部分。只需在应用程序中使用70k条目即可。

    提前致谢!

2 个答案:

答案 0 :(得分:1)

这是我在Tamal Mukherjee和Roman Nurik的帮助下找到的最佳解决方案。

Tamal的解决方案:

只需加载5-10行/字母。添加“更多”按钮或处理滚动事件并动态加载。使用SQLite存储数据。使用后台线程填充数据库。

Roman Nurik的解决方案:

有80k行,字母表中每个字母超过1000个项目。看起来你需要的不仅仅是字母索引,以使这个UI可用。为什么不提供按类型过滤?这将导致更多的HTTP请求,但可能会带来更好的用户体验。

所以我想我的实现将是两者的结合。

答案 1 :(得分:0)

请按照以下步骤操作: -

1-使用IntentService在启动画面上调用API。

2-使用静态 broadCasting并使用onRecieve() BroadCastReciever方法中的ORMLite将API响应保存到sqlitedb中。

3-确保接收者应该有单独的课程。

4-使用Loader Manager更新ListView