试图解雇进度对话框

时间:2015-05-08 22:16:40

标签: android

我正在使用Async Task在我的数据库中执行某些操作。在操作过程中,我显示了一个进度对话框,当操作完成时,我想解雇它,但它没有工作。

private ProgressDialog progressDialog; 

private void showProgressDialog(String title, String message)
{
    progressDialog = new ProgressDialog(this);

    progressDialog.setTitle(title); //title

    progressDialog.setMessage(message); // message

    progressDialog.setCancelable(true);

    progressDialog.show();
}

private class InsertFoodAsyncTask extends AsyncTask<Void, Integer, String>{

    @Override
    protected String doInBackground(Void... arg0){
        InsertFood p = new InsertFood(Food.this,mBDD);
        p.InsertFood();

        return "Executed";
    }

    @Override
    protected void onPreExecute() {
        showProgressDialog("Please wait...", "Your message");
    }

    @Override
    protected void onPostExecute(String result) {
        if(progressDialog != null && progressDialog.isShowing())
        {
            progressDialog.dismiss();
        }
    }
}
你能帮帮我吗?非常感谢!

2 个答案:

答案 0 :(得分:1)

试试吧,

取代:

progressDialog.show();

有:

progressDialog = progressDialog.show();

答案 1 :(得分:0)

您的代码似乎都是正确的。 onPostExecute()已经使它在ui线程上运行。但是仍然试着用这个来检查。

getActivity().runOnUiThread(new Runnable() {
               @Override
               public void run() {
                    if(progressDialog != null && progressDialog.isShowing())
                    {
                        progressDialog.dismiss();
                    }
               }
            });