AsyncTask 和进度条 [重复]

     2023-02-25     229

关键词:

【中文标题】AsyncTask 和进度条 [重复]【英文标题】:AsyncTask and Progress Bar [duplicate] 【发布时间】:2014-02-05 21:14:51 【问题描述】:

我有发送(多个文本文件)到服务器的应用程序,每个文件发送和获取响应都会更新进度条。一旦所有文件都发送完毕,它就会被关闭。

我已经通过在循环中调用发送函数成功地实现了这一点,并且进度条得到了更新。现在我想 AsyncTask 为每个文件执行 http 请求,同时进度条也得到更新。

如何定义 AsyncTask 以发送特定文件并获得响应。在它发送的每个文件上,进度条也会更新?

任何帮助将不胜感激。

谢谢

-山姆

【问题讨论】:

您到底想知道什么?如何将参数传递给 AsyncTask?或者如何从 Asynctask 更新 ProgressBar? 我在进度条循环内调用new PostDataAsyncTask().execute(currentFile),它会抛出异常,即不能在非 UI 线程中调用 AsyncTask。然后如何更新 ProgressBar 以及在哪里创建 AsyncTask 实例? 【参考方案1】:

如果您想更新您的ProgressBar,同时仍在您的AsyncTask 中执行,您应该...

在您的AsyncTask 中实现onProgressUpdate(...) 方法。

如果您想在doInBackground(...) 期间更新进度条,请致电publishProgress(...)

AsyncTask documentation 中有一个这样的例子。

【讨论】:

【参考方案2】:

您必须从主/UI 线程调用 AsyncTask。您不能从后台线程启动 AsyncTask。 尝试从 onCreate() 调用 new PostDataAsyncTask().execute(currentFile)。 正如 Yjay 所说,您可以使用 onProgressUpdate()publishProgress() 来更新 ProgressBar 的值。

【讨论】:

【参考方案3】:

这个问题在很多地方都被问及过。关键是使用doInBackground() 方法执行网络活动,然后您可以根据需要从那里调用publishProgress() 以更新对话框。您还需要覆盖 onProgressUpdate(),因为这是 publishProgress() 调用的方法,并且您将在其中放置对话框代码。

Android documentation for AsyncTask android how to work with asynctasks progressdialog Download a file with Android, and showing the progress in a ProgressDialog How to use Asynctask effectively How to use AsyncTask correctly in Android 更多...

【讨论】:

在主 UI 线程中单击按钮时,我的进度条会在一个新线程中生成。然后我在哪里实例化 AsyncTask?在这种情况下,我该如何启动 progressBar? 这个想法是,您启动 AsyncTask 以进行网络 I/O 以发送文件,一旦文件完成,您可以调用 publishProgress(),可选地使用一些参数。一旦你这样做,它会触发onProgressUpdate(),这就是你应该更新你的 ProgressBar 的地方。不是您通过“单击按钮时产生一个新线程”来描述它的方式。请阅读文档和链接。

Android AsyncTask 重复进程半年

】AndroidAsyncTask重复进程半年【英文标题】:AndroidAsynchTaskrepeatingprocessforhalfanour【发布时间】:2014-09-0203:45:48【问题描述】:我有一个带有进度条的异步任务。我在doInBackground()中需要的是填充我的数据库并使用水平进度条发布它... 查看详情

使用 AsyncTask 显示一个循环进度条

】使用AsyncTask显示一个循环进度条【英文标题】:UsingAsyncTasktoshowaCircularProgressBar【发布时间】:2013-06-2709:07:27【问题描述】:我是初学者Android程序员。我正在编写一个小型计算器,其中输入了两个否,并在按下总计时添加了两... 查看详情

水平进度条不适用于 Asynctask Android 下载文件?

】水平进度条不适用于AsynctaskAndroid下载文件?【英文标题】:HorizontalProgressBarNotWorkinginAsynctaskAndroidForDownloadfile?【发布时间】:2014-07-2417:50:27【问题描述】:我正在尝试使用Asynctask显示水平进度条,但它不适合我。它不是显示百... 查看详情

Android AsyncTask 没有更新进度条

】AndroidAsyncTask没有更新进度条【英文标题】:AndroidAsyncTaskisnotupdatingProgressBar【发布时间】:2019-01-0822:46:38【问题描述】:您好,我在使用asynctask时遇到问题。我播放了一首歌曲,然后将持续时间更新到进度条。但是当我播放一... 查看详情

在 AsyncTask 中显示进度条

】在AsyncTask中显示进度条【英文标题】:ShowprogressbarinAsyncTask【发布时间】:2016-06-1116:44:27【问题描述】:我想在后台生成表格时显示一个圆形进度条。我在异步任务中的代码:classDoWorkextendsAsyncTask<Void,Void,Void>Contextcontext;pub... 查看详情

AsyncTask onPreExecute() 中未显示进度条

】AsyncTaskonPreExecute()中未显示进度条【英文标题】:ProgressBarnotshowinginAsyncTaskonPreExecute()【发布时间】:2014-10-2305:49:59【问题描述】:我目前的项目涉及从服务器下载数据-这大约需要20秒,所以在此期间我想显示一个进度条,以便... 查看详情

自定义对话框片段内的进度条 - 如何从 AsyncTask 传递进度?

】自定义对话框片段内的进度条-如何从AsyncTask传递进度?【英文标题】:Progressbarinsidecustomdialogfragment-HowtopassprogressfromanAsyncTask?【发布时间】:2015-06-2602:29:41【问题描述】:我创建了一个自定义对话框片段,在其中我放置了一个... 查看详情

我想在 RxJava 中使用进度条,就像在 AsyncTask 中一样

】我想在RxJava中使用进度条,就像在AsyncTask中一样【英文标题】:IwanttouseaprogressbarwithRxJavalikeyoucanwithAsyncTask【发布时间】:2017-07-0810:09:11【问题描述】:我想在android中用RxJava替换我的AsyncTask。我当前的AsyncTask是这样的:publicclas... 查看详情

如何使用 asynctask 执行数据库操作来实现进度条?

】如何使用asynctask执行数据库操作来实现进度条?【英文标题】:HowIcanperformdatabaseoperationsusingasynctasktoimplementaprogressbar?【发布时间】:2017-02-2616:48:07【问题描述】:我有一个带有列表视图的片段,并通过查询在其中设置数据。... 查看详情

我想在进度条文本(变量)中显示处理数据,这在 AsyncTask 类的doingBackground()方法中发生了变化[关闭]

】我想在进度条文本(变量)中显示处理数据,这在AsyncTask类的doingBackground()方法中发生了变化[关闭]【英文标题】:iwanttoshowtheprocessingdatainprogressbartext(variable)whichischangingindoingBackground()methodofanAsyncTaskclass[closed]【发布时间】:... 查看详情

如何在 AsyncTask 的后执行方法中获取对 recyclerveiw 适配器进度条的引用

】如何在AsyncTask的后执行方法中获取对recyclerveiw适配器进度条的引用【英文标题】:HowtogetareferencetorecyclerveiwadapterProgressbarinpostexecutemethodofAsyncTask【发布时间】:2019-07-2521:59:07【问题描述】:这是我要解决的方案。我有一个包含... 查看详情

检查所有 AsyncTask 是不是已完成

】检查所有AsyncTask是不是已完成【英文标题】:CheckifallAsyncTaskshavefinished检查所有AsyncTask是否已完成【发布时间】:2011-10-1823:26:28【问题描述】:我有3个AsyncTasks和1个ProgressBar。我希望当任何任务执行时,进度条是可见的,当所... 查看详情

文件上传进度条[重复]

】文件上传进度条[重复]【英文标题】:Fileuploadprogressbar[duplicate]【发布时间】:2011-04-0611:20:21【问题描述】:可能重复:UploadProgressBarinPHP任何人都可以建议一种在上传文件时包含文件上传进度条的好方法。我知道这将是javascript... 查看详情

网络通话期间的进度条更新

...这种网络调用的进度以更新我的UI,或者具体来说,我在AsyncTask的doInBackgropun 查看详情

安卓。你自己的进度条?

...该的事实。告诉我如何实现以下内容:有执行某些操作的AsyncTask有25张如下形式的图片:图片有SheetAnimationxml:<animation-listxmlns:android="http://schemas.andro 查看详情

下载时更新ListView中的进度条

...tView中,有一个Button和一个TextView和一个ProgressBar。我调用AsyncTask的按钮侦听器位于Custom 查看详情

带有进度条的 Firebase 数据库

...据时,我无法将progressbar附加到我的活动中。我尝试通过Asynctask附加进度条,将firebase监听器放入AsyncTaskdoInBackGround,在PreExecute和PostExecute方法中设 查看详情

我如何在我的异步任务类中使用圆形旋转进度条

...转进度条【英文标题】:Howicanusecircularspinningprogressbarinmyasynctaskclass【发布时间】:2019-06-0221:46:09【问题描述】:我想在asynctask类中使用旋转进度条。下面是我的asynctask类代码。在我使用正常工作的进度对话框之前。publicclassDownlo... 查看详情