2017-08-14 31 views
1

我有以下情況,並希望避免使用片段。片段狀活動的後臺行爲

Act X <-> (Act A <-> Act B <-> Act C) --> Act X.

應當有一個後退導航成爲可能。完成該過程(A-B-C)後,我想返回到我的入口點(從Backstack例如Act X)。此外,我希望能夠在任何時候關閉該過程。例如:用戶在Act B並按CancelButton - >返回到入口點(Act X)。

我想有一個單獨的「活動回棧」在那裏我可以在任何時候(A,B或C)取消特定進程,回到我的入口點(X,...)。這可能只使用活動?我嘗試使用單獨的taskAffinity(在清單中)與Intent.FLAG_ACTIVITY_NEW_TASK,但我想避免啓動「單獨的應用程序」。

+0

FLAG_ACTIVITY_REORDER_TO_FRONT或FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_SINGLE_TOP的組合。根據你的描述,你很清楚你期望在用戶通過你描述的活動鏈進展之後,後退堆棧的狀態如何。 – CommonsWare

+0

我想要有一個「正常」背印行爲。 因此,A-B-C活動適用於我的應用程序中的配置。當我完成整個過程時,我想回到我的入門點。此外,我想提供標準的後退導航**加**有機會在任何時間/活動取消整個「配置」過程。 所以像一種羣體 – Maxi

+0

的-B-C的行爲「我希望有一個‘正常’的回壓的行爲」 - 即沒有澄清的東西。當用戶到達右邊的「Act Home」,然後按下BACK時,會出現什麼?法案C? Act Home的另一個實例?用戶的主屏幕,因爲最右邊的Act Home是背面堆棧中唯一的東西?還有別的嗎? – CommonsWare

回答

0

事實是沒有像「popBackstack」這樣的事情,直到與活動點。我想你可以:如果存在,當用戶按下取消

  • 覆蓋onBackPressed在一個法案

    • 開始與法X和FLAG_ACTIVITY_CLEAR_TOP標誌一個新的意圖,使該法X到前面,B,C做與用戶按back時上述選項相同。但在這種情況下,您可能需要指定動畫來模擬back效果。

    我不知道爲什麼你只需要使用活動,但如果你有2個活動(X和Y),會更容易。 Y包含片段A,B,C。像這樣,您可以在Act Y中覆蓋onBackPressed,並在用戶對任何片段按back時完成活動。您會自動回到Act X.