与服务器同步时的进度条

发布于 2024-11-05 15:56:42 字数 86 浏览 0 评论 0原文

我的应用程序需要不断连接远程服务器来下载数据。我想在下载数据时实现一个进度条,并显示下载进度和预计剩余时间。

谁能建议最好的方法来做到这一点?

My application needs to constantly connect with remote server to download data. I want to implement a progress bar while the data is downloaded and also show the progress and estimated time left in download.

Can anyone please suggest the best way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

Oo萌小芽oO 2024-11-12 15:56:42

使用 AsyncTask 进行连接。

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

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

Use an AsyncTask to connect .

In preExecute get the size of the object to download, create progress bar etc. with upperbound size of the object.

in onProgressUpdate calculate how much has been done since last progress update so you can estimate time and update your progress bar with total done so far.

没有伤那来痛 2024-11-12 15:56:42

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

  • 如果您的同步过程仅包括下载 1 个包含所有新数据的文件(例如 JSON 文件),则很容易。您只需测量下载了多少文件(看看这个问题使用 Android 下载文件,并在 ProgressDialog 中显示进度
  • 如果您的同步过程涉及下载不同的文件(例如图像、文本等)...您可以根据情况实现进度条还剩多少文件需要下载(以及它们的重量)。
  • 如果您下载不同的文件,但每次同步的文件不同,您可以先询问服务器同步将使用多少个文​​件,以及每个文件的大小。然后按照上面的方法做。

理想情况下,您必须考虑您收到的文件的大小以及您使用它们所花费的时间。

It depends on type of synchronization... for instance:

  • If your sync process consist of downloading only 1 file that contains all new data (say a JSON file), it's easy. You just have to measure how much of the file have you download (take a look at this question Download a file with Android, and showing the progress in a ProgressDialog)
  • If your sync process involves download different files (say, images, text, etc)... you can implement the progress bar depending how many files are left to download (and hopefully how much they weight).
  • If you download different files but they differ from one sync to another, you can ask first the server how many files the synchronization will use, and the size of each file. Then do same as above.

Ideally you must take into account the size of the files you are receiving + the amount of time you spend using them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文