关键词:
【中文标题】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()
调用的方法,并且您将在其中放置对话框代码。
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... 查看详情