使用volley时如何保持进度条状态?

2023-12-25

当我将 AysncTask 与片段回调一起使用时,维护进度条状态很容易,但我应该如何用 volley 实现它?我不能使用 AsyncTask,因为它已经过时了,而且 volley 更好更快。 任何帮助或提示将不胜感激。

我正在使用谷歌的齐射来发布和获取请求


我认为这里存在一些误解。

首先,Volley 比 AsyncTask 更快。

这是比较苹果和橙子。他们都使用线程。 Volley 线程并不比异步任务中的线程快。队列是分开的,但仅此而已。在 API 11 及更高版本中,您可以使用自己的线程池AsyncTask实例。

其次,更好地定义。

  • Volley 旨在向服务器发送大量轻负载 (GET/POST) 并快速返回响应。然后调用者可以使用这些响应。

  • AsyncTask旨在完成 UI 线程之外的给定任务,并提供有关该任务状态的各种回调。

为您ProgressBar我假设您正在尝试确定正在执行的请求的进度。在 Volley 世界中,由于这些状态预计很小,因此几乎有 3 个状态。

  • 没有开始
  • 执行(还包含开始解析)
  • 完成(包括成功、错误和取消等)

正如你所知AsyncTask有一个回调onProgress使用时publishProgress。因此,您的实例可以定义它想要发送的任何内容作为进度指示。

如果您的有效负载很大并且需要时间才能传输到服务器,那么 Volley 可能不合适。 Volley 在向服务器发送大量有效负载和从服务器发送大量有效负载方面做得并不出色,甚至没有尝试做得很好。原因是这不是它的目的。就像它要求所有有效负载、上传和接收都可以完全装入内存一样。因此,如果您有几个齐射请求,并且每个请求都有 1MB 的有效负载和 1MB 的响应,您可能会发现这一数字很快就会增加。您需要一个流媒体选项来更好地处理这个问题。

Volley 是一个很棒的库,但请考虑一下它的推荐用途。阅读代码的文档和实现以获取更多信息。

如果您要做的事情需要相当长的时间,我会在 volley 中编写一个特定的请求类型,用于发送和流式传输内容。这样您就可以知道该请求还剩下多少工作。我假设您使用发送和接收的字节数作为进度衡量标准。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用volley时如何保持进度条状态? 的相关文章

随机推荐

  • Sqlalchemy:查询多态类的 m2m 关系

    我有两个通过多对多关系连接的类 Parent and Tag Base declarative base association table Table associations Base metadata Column parent id
  • Proguard 在不混淆的情况下进行收缩和优化

    在我的应用程序中 我有库项目依赖项 其中包含许多未使用的方法字段和类 由于这是一个第三方库 我不想自己删除所有未使用的类和方法 因为它是未来的更新 我正在尝试为此使用混淆器 但是 dontobfuscate 只会将整个项目排除在任何优化 缩
  • PHP 编译器 xdebug 警告

    PHP 新手 从事 PHP 项目并启用 xdebug 以便能够调试我的 PHP 应用程序 生产服务器没有启用 xdebug 因为它是由另一个团队处理的 在我的本地计算机上 当我运行 Composer 时 它会给我一个警告 You are r
  • 当只有一个子项可用时,最后一个子项样式会覆盖第一个子项样式

    ul li first child a border radius 5px 5px 0 0 ul li last child a border radius 0 0 5px 5px 当只有一个子项时 最后一个子项样式将覆盖第一个子项样式 有
  • Mysql 容器无法在 Kubernetes 上启动

    我正在使用this https hub docker com layers bitnami mysql 5 7 images sha256 87d11d41343c5404073f13b555e2849db4cb975f10e9b84ff4
  • pcntl_fork 在 PHP 中如何工作?

    我很困惑pcntl fork http php net pcntl fork in PHP 我认为它具有多线程功能 但它是如何工作的以及如何在脚本中使用它 PCNTL 不能创建线程 它仅 分叉 当前的 PHP 进程 这是什么意思 你打电话时
  • 无需更改 .NET 中的代码即可启用 TLS 1.2

    我有 NET 4 5 2 应用程序正在使用SmtpClient发送电子邮件 该应用程序安装在Windows 2012 R2服务器上 当我禁用 TLS 1 和 TLS 1 1 并仅启用 TLS 1 2 时 应用程序停止发送邮件 我认为这是因为
  • Android ViewPager 页面片段之间的填充/边距

    Android Market Google Music 似乎能够在包含在其中的不同片段之间存在某种间隙 ViewPager 知道这是如何做到的吗 向实际片段视图添加边距 填充不起作用 因为视图仍然需要占据屏幕的整个宽度 间隙 仅在滑动 Vi
  • 有某种方法可以禁用 Angular 2 中的一组输入吗?

    我在 md card 中有一些输入 有一种方法可以这样做
  • Bison/Yacc 语法中的无意串联

    我正在尝试 lex 和 yacc 并遇到了一个奇怪的问题 但我认为最好在详细说明问题之前向您展示我的代码 这是我的词法分析器 include
  • 如何有效地将阵列旋转±180°?

    对于 C 语言和衍生物 Python Cython 纯 C 使用最少的内存和操作将非方形 M N 数组绕其中心旋转 180 的最佳算法是什么 假设out是一个初始化的副本array M and N它们的行数和列数 我们使用从 0 到 M 1
  • Javascript 从 toLocaleDateString 解析日期以获取已知区域设置

    背景 在我的应用程序中 我想根据用户的区域设置设置日期格式 如果用户修改日期 我希望能够将其解析回 javascript Date 对象 Problem 我想知道是否可以使用 javascript 从本地格式化的字符串中解析日期 请考虑以下
  • PST 到 CSV 文件转换

    有谁知道通过命令行将 pst 转换为 csv 文件的好工具 您可以假设计算机上安装了 Outlook 吗 如果是这样 我相信它可以使用 OLE 或类似的东西进行后台脚本编写 我已经使用 Ruby 通过 Excel 完成了文件转换 这是一个P
  • 有没有办法将 SharedPreferences 存储到 SD 卡上?

    我编写了一个具有多个硬编码设置 例如 fontSize 或 targetDirectory 的应用程序 我希望能够偶尔更改这些类型的设置 SharedPreferences 似乎是解决此问题的一种方法 但我想共享此应用程序和设置 并且我的手
  • 使用参数从终端运行 Jython 脚本

    我想从命令行调用 Jython 脚本 例如 Applications Fiji app Contents MacOS ImageJ macosx headless little jython script py 我了解 Python 以及
  • GtkTreeView 由于排序而导致插入/更新性能损失

    在将许多行插入 GTK 树视图 使用 PyGTK 或修改许多行时 我遇到了性能问题 问题是模型似乎在每次更改 插入 修改 后都会被重新使用 这会导致 GUI 挂起数秒 通过注释使模型不排序model set sort column id S
  • 从 CLLocation 数组创建 GPX 文件

    我的应用程序需要使用应用程序在设备内共享 CLLocations 路由 数组 在此之前我没有使用 GPX 的经验 GPX 是最好的格式吗 如何从给定的此类 CLLocations 数组创建 GPX 文件 Objective C 中有标准的
  • 生成的 PDF 中自动换行(使用 jsPDF)?

    我正在做的是使用 jsPDF 创建我生成的图表的 PDF 但是 我不确定如何包装标题 通过使用 text 函数添加 标题的长度因图表而异 目前 我的标题已经从页面上消失了 任何帮助 将不胜感激 这是我到目前为止的代码 var doc new
  • 从 Lambda 中的 S3 通知事件获取非 ASCII 文件名

    The keyAWS S3 通知事件中表示文件名的字段已进行 URL 转义 当文件名包含空格或非 ASCII 字符时 这一点很明显 例如 我已将以下文件名上传到 S3 my file txt 收到的通知如下 Records s3 objec
  • 使用volley时如何保持进度条状态?

    当我将 AysncTask 与片段回调一起使用时 维护进度条状态很容易 但我应该如何用 volley 实现它 我不能使用 AsyncTask 因为它已经过时了 而且 volley 更好更快 任何帮助或提示将不胜感激 我正在使用谷歌的齐射来发