AsyncTask和Progress Bar

时间:2014-01-16 19:08:35

标签: android android-asynctask progress-bar

我有应用程序将(多个文本文件)发送到服务器,并在每个文件发送和更新上更新进度条。得到回应。一旦发送了所有文件,它就会被取消。

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

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

任何帮助都会非常感激。

由于

萨姆

3 个答案:

答案 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的值。