与服务器同步时的进度条

时间:2011-05-09 16:57:56

标签: android progress-bar progress

我的应用程序需要不断与远程服务器连接以下载数据。我希望在下载数据时实现进度条,并显示下载的进度和估计剩余时间。

有人可以建议最好的方法吗?

2 个答案:

答案 0 :(得分:3)

使用AsyncTask进行连接。

在preExecute中获取要下载的对象的大小,创建具有对象上限大小的进度条等。

onProgressUpdate中的

计算自上次进度更新以来已完成的工作量,以便您可以估算时间并更新您的进度条到目前为止完成的总数。

答案 1 :(得分:2)

这取决于同步的类型......例如:

  • 如果您的同步过程只包含下载包含所有新数据(例如JSON文件)的1个文件,则很容易。你只需要衡量你下载了多少文件(看看这个问题Download a file with Android, and showing the progress in a ProgressDialog
  • 如果您的同步过程涉及下载不同的文件(例如,图片,文字等)......您可以根据要下载的文件数量来实现进度条(并希望它们的重量是多少)。
  • 如果您下载不同的文件,但它们从一个同步到另一个不同,您可以先询问服务器同步将使用多少文件,以及每个文件的大小。然后像上面那样做。

理想情况下,您必须考虑所接收文件的大小+使用它们的时间。