當我的應用程序啓動時,我調用Asyn任務函數。在後臺進程中,它會觸發3個API並解析它們的功能,它將花費大約10分鐘的時間。當Asyn任務執行時阻止Android後退按鈕
在這種情況下,如果用戶點擊了android默認後退按鈕,那麼asyn任務將被取消。爲了避免這種情況,我試圖阻止後退按鈕操作,如下所示。
class First_Time_Sync extends AsyncTask<Void, Void, Void>
{
ProgressDialog dialog1 = new ProgressDialog(Progressss.this);
protected void onPreExecute()
{
backMode = true;
dialog1.setMessage("Welcome \nThank you for waiting.");
dialog1.setIndeterminate(true);
dialog1.show();
}
protected Void doInBackground(Void... arg0)
{
.................
return null;
}
protected void onPostExecute(Void unused)
{
backMode = false;
dialog1.dismiss();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if (backMode)
{
return true;
}
else
{
return super.onKeyDown(keyCode, event);
}
}
return super.onKeyDown(keyCode, event);
}
現在當調用異步任務函數時,如果用戶單擊後退按鈕進度條被取消。但後臺進程繼續,後退按鈕被阻止,直到後臺進程完成。
我想要顯示進度條,即使按下後退按鈕,也不會消失。
如何做到這一點......
10分鐘太長擋住後退按鈕,並有進度對話框顯示。也許你需要在後臺服務中完成你的任務? – barry 2012-01-09 08:09:46