如何始终如一地高效刷新listview内容源?

时间:2013-08-10 01:21:22

标签: android sqlite listview service refresh

我目前有几个片段标签,每个标签都有一个用户状态供稿,我有大约100个其他用户从他们的帐户发布,每隔几分钟就会有新的数据。目前用户唯一的选择是将片段切换回第四个以重新加载整个片段,然后发送另一个http请求并返回新数据以及用户已有的所有旧数据。它只是看起来效率不高,知道必须有更好的方法。有人可以给我一个概述最有效的方法来保持这些数据新鲜,而无需用户切换标签和第四个?

这是使用sqlite和/或服务的地方吗?

2 个答案:

答案 0 :(得分:1)

好吧,我会尽量给你一个概述,看看你是否可以在不需要深入细节的情况下得到它,这个想法刚出现在我脑海中:

1-您需要将服务器配置为从内容的“特定”点检索或检索您将传递给服务器的令牌(在下一个HttpRequest上),以了解内容的哪个部分或从哪里“ index“开始再次发送内容。

2-你需要一个监听器(我不知道你是如何显示你的数据,但这是ListView的情况)告诉你什么时候用户接近ListView的结尾并且不要如果已经有10个元素,则在元素7中,监听器应该调用该方法从服务器获取更多内容。

3-是的,您需要暂时保留数据已在SQLite中检索,您不能使用SharedPreference来保留它,因为它可能是大量数据并将其保存在内存中可能是一个坏主意,写一个文件不是这里的选项,所以在这种情况下,SQLite是你最好的朋友。

也许会有更多关于你想要实现的问题的具体细节,但从一般的角度来看,这3点至少应该帮助你朝着这个方向前进。

答案 1 :(得分:1)

虽然一些开发人员和设计人员之间争论是否应该自动刷新内容,但我认为不应该自动刷新内容,除非您期望输入的数据少得多。

我使用twitter4j在我的测试应用程序中自动传输推文和刷新,twitter4j有一个监听器,可以让你知道收到新推文的时间。首先,一旦收到新的Feed,我就会将数据推送到ListView,并且它有点华而不实,但效率很高。然后我排队数据,直到达到一定的阈值并将数据推送到ListView,它有点好。我认为这很好,但是当我监控我的“数据使用情况”时,我完全意识到为什么我不应该自动刷新。

现在这里有一些示例实现:

  • (建议)做某种类型的投票,或者我建议您实施 推送(如GCM)让您的客户端知道有新内容 在服务器中。
  • (可选)将SyncAdapter与服务器触发的同步一起使用
  • (推荐)让用户掌控,使用起来还可以 像Facebook或ActionBar同步按钮之类的Pull-to-Refresh模式 Google+的。它不会使UserExperience有任何不好。

现在,您的示例请求API应该是这样的,或者您可以匹配您自己的配置:

{
"fromIndex": 0,
"toIndex": 10

...
}