2017-10-05 52 views
0

我現在有流Android應用A - >乙 - 「ç - > d在活動推出1.除去所有片段使得onBackPressed關閉應用

d後,我具有活性2開始和下面的代碼運行以從堆棧中移除所有片段。

List<Fragment> fragments = getSupportFragmentManager().getFragments(); 
if (fragments != null) { 

    for (Fragment fragment : fragments) { 
     getSupportFragmentManager().beginTransaction().remove(fragment).commit(); 
    } 
} 

我的問題是,當我從活動2返回活動1時,是當我按下後退鍵時,片段C動畫返回到屏幕。片段D確實刪除,但A B C不刪除。我希望應用在活動1的後備活動時關閉。

我附加了在此刪除我的片段的代碼。調試顯示fragment確實隨每個循環而改變。

任何人都可以建議這裏發生了什麼?

+0

什麼是D-> C-> B-> A慾望的行爲嗎?你爲什麼要加入到後臺? – nomag

+0

是否有一個特定的原因,您將所有片段添加到後端堆棧以開始?另外,當用戶從活動2返回到活動1時,您想要顯示哪個片段? –

+0

我添加到了堆棧中,因爲在片段中,如果按下後退鍵,我希望能夠導航回到它們。如果對服務器的調用成功,則行爲是A> B> C> D>打開活動2。如果我從活動2返回活動1,我不希望任何片段出現在backkeypress上,而是希望它退出該應用程序。 – Airagale

回答

0

您可以覆蓋backpressed方法和關閉應用程序,就像這樣:

@Override 
public void onBackPressed() { 
     finish(); // finish activity 
} 
相關問題