繁体   English   中英

在AsyncTask android中下载进度

[英]Downloading progress in AsyncTask android

我正在尝试创建下载进度。 我的类扩展了AsyncTask: public class DownloadFileTask扩展了AsyncTask

下载开始时我想创建进度:

  @Override
  protected void onPreExecute() {



   progressDialog = new ProgressDialog(whatContext);
   progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
   progressDialog.setMessage("Loading...");
   progressDialog.setCancelable(false);
   progressDialog.show();
  }

但我不知道我应该给新的ProgressDialog什么上下文因为我不在Activity类。 我试着给出一些上下文,但是有一个错误:

在范围内无法访问Main_Tab类型的封闭实例

那我怎么能创造这个进步呢?

此外,我想创造进步不在这个类(因为我想要单独的功能和设计),但我不知道如何做到这一点。

谢谢你们的帮助。

 public class DownloadFileTask extends AsyncTask{
Context mContext;

    public DownloadFileTask(Context context) {
            this.mContext = context;

        }


     @Override
      protected void onPreExecute() {



       progressDialog = new ProgressDialog(mContext);
       progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
       progressDialog.setMessage("Loading...");
       progressDialog.setCancelable(false);
       progressDialog.show();
      }
    }

要启动DownloadTask调用就好

 DownloadFileTask task = new DownloadFileTask(MyActivity.This);
 task.execute();

您应该为AsyncTask创建一个构造函数,它将Context对象作为参数,例如:

public DownloadFileTask(Context context) {
    this.context = context;
}

然后,您可以使用context字段初始化ProgressDialog 关于第二个问题 - 没有足够的信息来回答它。 希望这可以帮助。

我想将上下文传递给您自定义的AsyncTask Loaders的构造函数可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM