Android AsyncTask publishProgress外部类

时间:2014-04-26 16:48:38

标签: android class android-asynctask

可以从外部类调用AsyncTask的方法publishProgress吗? 我写了一个类下载文件:

    public class ProgressDialogAsyncTask extends AsyncTask<Void, Long, Boolean> {
         protected Boolean doInBackground(Void... params) {
            HttpConnection.downloadFile(mContext,
                            HttpConnection.getFileLength());
         ...
         }
      }

它有效(文件已下载)但我需要一个进度条,这个进展是进入HttpConnection类。 是否可以将publishProgress方法调用到HttpConnection类中?

由于

1 个答案:

答案 0 :(得分:0)

你必须在doInBackground()中调用publishProgress。

然后在ProgressDialogAsyncTask中添加另一个方法:onProgressUpdate()。只要在后台线程中调用publishProgress(),就会调用这个...在ProgressUpdate()上你可以调用你的进度条... HttpConnection.showProgress()或者其他:)

示例:

public class ProgressDialogAsyncTask extends AsyncTask<Void, Long, Boolean> {
     protected Boolean doInBackground(Void... params) {

        int count = 0;
        HttpConnection.downloadFile(mContext,
                        HttpConnection.getFileLength());

        publishProgress(count);
     ...
     }

     protected void onProgressUpdate(Long...update) {
         HttpConnection.showProgress(update[0]);
     }

  }