Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Can';异步任务完成后,不要关闭ProgressDialog_Android_Android Asynctask_Progressdialog - Fatal编程技术网

Android Can';异步任务完成后,不要关闭ProgressDialog

Android Can';异步任务完成后,不要关闭ProgressDialog,android,android-asynctask,progressdialog,Android,Android Asynctask,Progressdialog,请帮助,我无法在任务完成后关闭ProgressDialog。我寻找答案,但什么也没找到。 当我使用Thread而不是AsyncTask时,这段代码运行良好。 你有什么想法吗 Context appContext; ProgressDialog pd; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); appContext=this; M

请帮助,我无法在任务完成后关闭ProgressDialog。我寻找答案,但什么也没找到。 当我使用Thread而不是AsyncTask时,这段代码运行良好。 你有什么想法吗

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);
   }
}
Context-appContext;
进展性帕金森病;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
appContext=this;
MyTask MyTask=新建MyTask();
myTask.execute();
}
类MyTask扩展了AsyncTask
{
@凌驾
受保护的void onPreExecute()
{
pd=ProgressDialog.show(appContext,“等待…”,“加载数据”,
正确的,错误的);
pd.可设置可取消(假);
super.onPreExecute();
}
@凌驾
受保护的Void doInBackground(Void…arg0)
{
//某物
返回null;
}
@凌驾
受保护的void onPostExecute(void结果)
{
如果(pd!=null)
pd.解散();
super.onPostExecute(结果);
}
}
onPreExecute()

    protected void onPreExecute()
    {
        showProgressDialog("Please wait...", "Your message");
    }
检查并取消onPostExecute()-

    protected void onPostExecute() 
    {
        if(progressDialog != null && progressDialog.isShowing())
        {
            progressDialog.dismiss();
        }
     }
试试这个

        private Context context;
        private ProgressDialog dialog;
    public LastStageTask(Context cxt) {
        context = cxt;

        dialog = new ProgressDialog(context);
    }

    @Override
    protected void onPostExecute(String result) {
        dialog.dismiss();
}

-为了清楚起见…您将上下文对象命名为“appContext”。这实际上是您的活动的上下文,而不是您的应用程序的上下文。在Android的世界里,这是两件截然不同的事情。
        private Context context;
        private ProgressDialog dialog;
    public LastStageTask(Context cxt) {
        context = cxt;

        dialog = new ProgressDialog(context);
    }

    @Override
    protected void onPostExecute(String result) {
        dialog.dismiss();
}