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();
}
}
}