在AsyncTask的完成后,无法取消ProgressDialog [英] Can't dismiss ProgressDialog after the AsyncTask complete
本文介绍了在AsyncTask的完成后,无法取消ProgressDialog的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请帮忙,AsyncTask的完成后,我不能排除ProgressDialog。我搜索的答案,但没有发现。 这code正常工作时,我使用的线程,而不是AsyncTask的。 有什么想法?
上下文appContext;
ProgressDialog PD;
@覆盖
公共无效的onCreate(包savedInstanceState)
{
super.onCreate(savedInstanceState);
appContext =这一点;
MyTask的MyTask的=新MyTask的();
myTask.execute();
}
类MyTask的扩展AsyncTask的<虚空,虚空,虚空>
{
@覆盖
在preExecute保护无效()
{
PD = ProgressDialog.show(appContext,等一下......,加载数据,
真假);
pd.setCancelable(假);
super.on preExecute();
}
@覆盖
保护无效doInBackground(空...为arg0)
{
//东西
返回null;
}
@覆盖
保护无效onPostExecute(虚空结果)
{
如果(PD!= NULL)
pd.dismiss();
super.onPostExecute(结果);
}
}
解决方案
私人ProgressDialog progressDialog; //类变量
私人无效showProgressDialog(标题字符串,字符串消息)
{
progressDialog =新ProgressDialog(本);
progressDialog.setTitle(); //标题
progressDialog.setMessage(); // 信息
progressDialog.setCancelable(假);
progressDialog.show();
}
在preExecute()
在preExecute保护无效()
{
showProgressDialog(请稍候...,您的信息);
}
检查并关闭onPostExecute() -
保护无效onPostExecute()
{
如果(progressDialog = NULL和放大器;!&安培; progressDialog.isShowing())
{
progressDialog.dismiss();
}
}
Please help, I can't dismiss ProgressDialog after AsyncTask complete. I searched for the answer but nothing found. This code works fine when I use Thread instead of AsyncTask. Have any ideas?
Context appContext;
ProgressDialog pd;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
appContext=this;
MyTask myTask=new MyTask();
myTask.execute();
}
class MyTask extends AsyncTask<Void, Void, Void>
{
@Override
protected void onPreExecute()
{
pd = ProgressDialog.show(appContext, "Wait..", "Loading data",
true, false);
pd.setCancelable(false);
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0)
{
//something
return null;
}
@Override
protected void onPostExecute(Void result)
{
if (pd!=null)
pd.dismiss();
super.onPostExecute(result);
}
}
解决方案
private ProgressDialog progressDialog; // class variable
private void showProgressDialog(String title, String message)
{
progressDialog = new ProgressDialog(this);
progressDialog.setTitle(""); //title
progressDialog.setMessage(""); // message
progressDialog.setCancelable(false);
progressDialog.show();
}
onPreExecute()
protected void onPreExecute()
{
showProgressDialog("Please wait...", "Your message");
}
Check and dismiss onPostExecute() -
protected void onPostExecute()
{
if(progressDialog != null && progressDialog.isShowing())
{
progressDialog.dismiss();
}
}
这篇关于在AsyncTask的完成后,无法取消ProgressDialog的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文