Java 来自非MainActivity类的Android ProgressDialog用法

Java 来自非MainActivity类的Android ProgressDialog用法,java,android,android-asynctask,Java,Android,Android Asynctask,我有一个使用DownloadPicture方法的类,它正在执行一个异步任务。该类不是类MainActivity扩展活动的子类。如何使用DownloadPicture方法显示ProgressDialogs?我想我可以将MainActivity.this传递给class Conatroctor,但还有其他方法吗?试试这种方法,希望这能帮助您解决问题。 将活动上下文传递给构造函数中的DownloadPicture类,并在onPreExecute()中初始化ProgressDialogs: 公共类Pro

我有一个使用
DownloadPicture
方法的类,它正在执行一个异步任务。该类不是
类MainActivity扩展活动的子类
。如何使用
DownloadPicture
方法显示ProgressDialogs?我想我可以将
MainActivity.this
传递给class Conatroctor,但还有其他方法吗?

试试这种方法,希望这能帮助您解决问题。

将活动上下文传递给构造函数中的DownloadPicture类,并在onPreExecute()中初始化ProgressDialogs:

公共类ProgressDialogs扩展异步任务{
私人语境;
私有进程对话;
公共进程对话框(上下文){
this.context=context;
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
progressDialog=progressDialog.show(上下文,“对话框标题”,“对话框消息”,true);
}
@凌驾
受保护的Void doInBackground(Void…参数){
//你知道这里的背景代码吗
返回null;
}
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
if(progressDialog!=null&&progressDialog.isShowing()){
progressDialog.disclose();
}
}
}

使用接口从异步任务回调到活动。您可以通过活动中的ProgressDialog执行任何操作。如果可以提供代码示例,可以详细解释。

有很多方法。但构造函数方法是安全的。使用构造函数并将上下文传递给构造函数。如果您提供代码片段,我可以更好地解释
public class ProgressDialogs extends AsyncTask<Void,Void,Void>{

    private Context context;
    private ProgressDialog progressDialog;
    public ProgressDialogs(Context context){
        this.context=context;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        progressDialog = ProgressDialog.show(context, "dialog title","dialog message", true);

    }

    @Override
    protected Void doInBackground(Void... params) {
        // do you background code here
        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {
        super.onPostExecute(aVoid);
        if(progressDialog!=null && progressDialog.isShowing()){
            progressDialog.dismiss();
        }
    }
}