gpt4 book ai didi

Android 下载多个文件并在 ListView 中显示进度

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:27:10 28 4
gpt4 key购买 nike

我有 N 个文件要下载。我想在后台连续下载它们 - 一个接一个。我想在 ListView 中显示进度和状态。所以,ListView 看起来像:

文件 1 ...已下载

文件 2....已下载

File3...进行中说 39%

File4...待定

....

Listview 定期刷新(比如每 2 秒刷新一次)并且文件很大:50 MB 左右。所以他们需要 1 分钟多的时间来下载。

我会将文件 URL 列表传递给 AsyncTask 并在后台下载它。问题是您如何将进度反馈回 ListView。

考虑到用户可能会离开 ListView 页面而让 AsyncTask 继续运行只是为了回来查看下载状态。

那么ListView是如何“观察”AsyncTask的进度并显示出来的呢?

我正在考虑添加一组静态变量 AsyncTask(使用“同步” block 保护它们)并在显示 ListView 的 Fragment 中使用周期性 UI 更新程序。所以 fragment 将有这样的东西:

Repeat a task with a time delay?

是否有设计模式、公共(public)项目或示例代码?

对不起,我没有拍好照片。最接近我所描述的是这里(类似但我计划使用 AsyncTask 和串行下载):

Picture

最佳答案

按照这些步骤

  1. 创建一个带有 asyncTask 的服务用于下载文件
  2. 在服务的onStartCommand中启动任务
  3. 在您的 Activity 中注册一个广播接收器以接收服务的进度
  4. AsyncTask 的 onProgressUpdate 向您的 Activity 发送广播
  5. 在ListView中显示进度

关于Android 下载多个文件并在 ListView 中显示进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18796965/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com