Android – 当按下返回button时停止AsyncTask并返回到前一个活动

我有一个AsyncTask,我希望它在按下后退button时指定执行。 我也希望应用程序返回到以前显示的活动。 看来我已经在停止任务pipe理,但应用程序不会返回到以前的活动。 有任何想法吗? 这是我的代码摘录

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); } } 

问候。

Solutions Collecting From Web of "Android – 当按下返回button时停止AsyncTask并返回到前一个活动"

 pd.setCancelable(true); pd.setOnCancelListener(cancelListener); bCancelled=false; pd is your progressdialog box 

现在使用cancelListner

  OnCancelListener cancelListener=new OnCancelListener(){ @Override public void onCancel(DialogInterface arg0){ bCancelled=true; finish(); } }; 

在你的活动中,重写后退button,停止AsyncTask,并为当前活动调用finish。

 @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); } 

您是否尝试在onDismiss()方法中添加finish()调用:

 public void onDismiss(DialogInterface dialog) { this.cancel(true); IscrizioniActivity.this.finish(); } 

试试这个…

 progress_dialog.setCancelable(true); progress_dialog.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { // TODO Auto-generated method stub YourActivity.this.finish(); } });