Android AsyncTask publishProgress外部类

Android AsyncTask publishProgress外部类,android,class,android-asynctask,Android,Class,Android Asynctask,是否可以从外部类调用AsyncTask的publishProgress方法? 我为下载文件编写了一个类: public class ProgressDialogAsyncTask extends AsyncTask<Void, Long, Boolean> { protected Boolean doInBackground(Void... params) { HttpConnection.downloadFile(mContext,

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

    public class ProgressDialogAsyncTask extends AsyncTask<Void, Long, Boolean> {
         protected Boolean doInBackground(Void... params) {
            HttpConnection.downloadFile(mContext,
                            HttpConnection.getFileLength());
         ...
         }
      }
公共类ProgressDialogAsyncTask扩展了AsyncTask{
受保护的布尔doInBackground(Void…params){
HttpConnection.downloadFile(mContext,
HttpConnection.getFileLength());
...
}
}
它可以工作(文件已下载),但我需要一个progressbar,这个进度是进入HttpConnection类的。 可以将publishProgress方法调用到HttpConnection类中吗


谢谢

您必须在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]);
     }

  }
公共类ProgressDialogAsyncTask扩展了AsyncTask{
受保护的布尔doInBackground(Void…params){
整数计数=0;
HttpConnection.downloadFile(mContext,
HttpConnection.getFileLength());
出版进度(计数);
...
}
受保护的void onProgressUpdate(长…更新){
HttpConnection.showProgress(更新[0]);
}
}

ok,这不是我的情况,因为我需要在HttpConnection类(对于进度下载文件)中调用publishProgress。publishProgress只能从AsyncTask内部调用,其他任何操作都没有多大意义,对吗?您的代码是错误的,HttpConnection应该是您的AsyncTask,并且没有理由使用ProgressDialogAsyncTask…好的,我将更改方式,因为HttpConnection是从不同的类调用的