I've an AsyncTask and I want it to stip execution when back button is pressed. I also want the app to return to the previous displayed Activity. It seems I've managed in stop the Task but the app doesn't return to the previous activity. Any ideas? This is an extract from my code
private class MyTask extends AsyncTask<Void, Void, Void> implements OnDismissListener{
private boolean exception= false;
@Override
protected void onPreExecute(){
pd = ProgressDialog.show(
IscrizioniActivity.this,
"Please wait...",
"Loading the data",
true,
true,
new DialogInterface.OnCancelListener(){
public void onCancel(DialogInterface dialog) {
MyTask.this.cancel(true);
}
}
);
}
@Override
protected Void doInBackground(Void... voids) {
//do something
return (null);
}
@Override
protected void onPostExecute(Void voids) {
pd.dismiss();
//do something
}
public void onDismiss(DialogInterface dialog) {
this.cancel(true);
}
}
Regards.
pd.setCancelable(true);
pd.setOnCancelListener(cancelListener);
bCancelled=false;
pd is your progressdialog box
and now use cancelListner
OnCancelListener cancelListener=new OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0){
bCancelled=true;
finish();
}
};
In your activity, override Back Button, stop the AsyncTask in it, and call finish for current activity.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
MyTask.cancel();
IscrizioniActivity.this.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With