2013-09-05 42 views
0

行,所以我做了一些研究,它看起來像有問題這方面(如here),但沒有一個答案似乎解決我的問題,特別是相當多的。的Android:更改任務回棧

簡而言之,就是說我們有三種活動:A→B→C。現在,如果用戶在活動C(前臺活動)中執行某個動作,我希望能夠從活動B中移除活動B後面的堆棧並將其替換爲其他一些活動D給A - > D - > C有沒有辦法在不中斷活動C的情況下執行此操作?

在此先感謝。

+2

AFAIK,沒有辦法做到這一點。好,你舉了一個例子說明爲什麼你需要這個,也許我們可以幫助找到解決方案? – codeMagic

+1

爲了從背面疊層看看[此](http://stackoverflow.com/questions/5001882/how-to-clear-specific-activity-from-the-stack-history?answertab=votes#tab-刪除乙最佳)。如果前臺活動是C,則可以覆蓋函數'onBackPressed()'(按下後退按鈕時執行)並啓動活動D. – AlexBcn

回答

-1

OK所以似乎沒有辦法做到這一點,因爲我最初設想。感謝@AlexBcn在評論中給出的建議,我確實發現了一個有點「黑客解決方案」。當用戶處於活動「B」(因此堆棧當前爲A→B)並按下一個導致活動「C」開始的按鈕時,我們銷燬活動B.因此,我們的堆棧現在是A-> C。什麼是「狀態」活動C(因爲這決定了我希望以前的活動是什麼)。然後,我重寫onBackPressed方法,以便在活動C被銷燬時創建一個新活動(即活動「D」)以複製我期望的效果。