2012-06-08 105 views
0

在我的程序中,我有一個異步任務,在導航到頁面時執行。問題是,當我離開該任務(使用手機的硬件後退按鈕)時,該任務尚未完成,應用程序崩潰。所以我的問題是,我如何暫時禁用後退按鈕。這樣我可以在異步任務完成時重新啓用它?暫時禁用後退按鈕

感謝,

巴特Teunissen

+0

只有當人們使用後退按鈕離開頁面時,或者當使用例如主頁按鈕導航離開時,單擊推送通知?如果使用其他方法導航時禁用後退按鈕也會導致應用程序崩潰 –

+0

使用主頁按鈕導航時導致不會崩潰,導致所有任務都可能以任何方式結束。所以問題純粹在於後退按鈕導航。 –

+4

我強烈建議修復崩潰,而不是禁用後退按鈕(如果您的應用按下開始按鈕,或者接到電話,應用如何應對?) –

回答

4

在我看來,我認爲你應該在儘可能多的情況下,儘可能嘗試啓用後退按鈕,只因爲有一個返回按鈕,因爲你應該能夠回來(使感覺)。但是如果您想知道如何做到這一點,可以這樣: 您可以初始化OnBackKeyPress方法並使用布爾值來定義異步任務是否已完成。定義變量BusyWithAsync,並在異步任務啓動時將其設置爲true,一旦完成,只需將BusyWithAsync變量設置爲false,並且您應該準備好了。

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) 
{ 
    if (BusyWithAsync) 
    { 
     e.Cancel = true; 
    } 
}