我有应用程序将(多个文本文件)发送到服务器,并在每个文件发送和更新上更新进度条。得到回应。一旦发送了所有文件,它就会被取消。
我已经通过在循环内调用send函数并且进度条得到更新来成功实现了这一点。现在我想让AsyncTask为每个文件执行http请求,同时进度条也会更新。
如何定义AsyncTask以发送特定文件并获取响应。在它发送的每个文件上,进度条也会更新?
任何帮助都会非常感激。
由于
萨姆
答案 0 :(得分:1)
如果您想在ProgressBar
执行期间更新AsyncTask
,则应该......
在onProgressUpdate(...)
中实施AsyncTask
方法。
如果您想在publishProgress(...)
doInBackground(...)
AsyncTask documentation中有一个例子。
答案 1 :(得分:1)
这已在很多地方被提及和回答。关键是使用doInBackground()
方法执行网络活动,然后您可以根据需要从那里调用publishProgress()
以更新对话框。您还需要覆盖onProgressUpdate()
,因为这是publishProgress()
调用的方法,并且您将放置对话框的代码。
答案 2 :(得分:0)
您必须从主/ UI线程调用AsyncTask。您无法从后台线程启动AsyncTask。
尝试从onCreate()调用new PostDataAsyncTask().execute(currentFile)
。
正如Yjay所提到的,您可以使用onProgressUpdate()
和publishProgress()
来更新ProgressBar的值。