[英]Android - Stop AsyncTask when back button is pressed and return to previous Activity
我有一個AsyncTask,我希望它按下后退按鈕時執行。 我還希望應用程序返回到之前顯示的Activity。 似乎我已經設法停止任務,但應用程序沒有返回到上一個活動。 有任何想法嗎? 這是我的代碼摘錄
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);
}
}
問候。
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();
}
};
在您的活動中,覆蓋后退按鈕,停止其中的AsyncTask,並為當前活動調用完成。
@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);
}
試試這個......
progress_dialog.setCancelable(true);
progress_dialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
YourActivity.this.finish();
}
});
您是否嘗試在onDismiss()
方法中添加finish()
調用:
public void onDismiss(DialogInterface dialog) {
this.cancel(true);
IscrizioniActivity.this.finish();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.