如何在AsyncTask中解除ProgressDialog

Lal*_*ani 1 android

我正在使用a ProgressDialog来显示我的后台进程,但是在后台进程完成后,ProgressDialog仍然没有被解雇.

这是我的代码

private class async extends AsyncTask<String, Void, Boolean> {
    final ProgressDialog progressDialog = new ProgressDialog(getParent());

    @Override
    protected Boolean doInBackground(String... params) {

        GetJson json = new GetJson();
        boolean success = false;

        JSONObject mJsonObject = json
            .readJsonObject("url");
        try {
            success = mJsonObject.getBoolean("success");
        } catch (Exception e) {
        }
        return success;
    }

    @Override
    protected void onPostExecute(Boolean result) {

        if (result) {
            if (progressDialog.isShowing())
                progressDialog.dismiss();
            }
        }
    }

    @SuppressWarnings("static-access")
    @Override
    protected void onPreExecute() {
        progressDialog.show(getParent(), "Working..", "Please wait...");
    }
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*lov 7

private final class YourTask extends AsyncTask<Void, Void, Object> {
    private ProgressDialog dialog;

    @Override
    protected void onPreExecute() {
        dialog = ProgressDialog.show(YourActivity.this, "Title", "Message", true);
    }

    @Override
    protected Object doInBackground(final Void... params) {
        // Doing something
    }

    @Override
    protected void onPostExecute(final Object result) {
        // Check result or something
        dialog.dismiss();
    }

}
Run Code Online (Sandbox Code Playgroud)