可以从外部类调用AsyncTask的方法publishProgress吗? 我写了一个类下载文件:
public class ProgressDialogAsyncTask extends AsyncTask<Void, Long, Boolean> {
protected Boolean doInBackground(Void... params) {
HttpConnection.downloadFile(mContext,
HttpConnection.getFileLength());
...
}
}
它有效(文件已下载)但我需要一个进度条,这个进展是进入HttpConnection类。 是否可以将publishProgress方法调用到HttpConnection类中?
由于
答案 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]);
}
}