Question

I am displaying a cancelable progress dialog while an asynctask is running. When I press the back button, I want both the dialog to disappear, but also to cancel the running async task. The problem is: The dialog-instance is not known to the asynctask, so I cant't cancel the dialog after the asynctask has been cancelled.

Currently it is only cancelled after I pushed the back button twice.

Was it helpful?

Solution

Dialog boxes have an onDismissed callback, use that to kill of the async task.

OTHER TIPS

You can use ProgressDialog callback on cancel:

this.dialog = new ProgressDialog(context);
this.dialog.setMessage("Loading...");
this.dialog.setCancelable(true);
this.dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
    @Override
    public void onCancel(DialogInterface dialog)
    {
        // cancel AsyncTask
        cancel(false);
    }
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top