2009-10-16 68 views
0

我在做它有如下大致流程的應用程序:在Android中返回結果時,如何跳過Activity堆棧的某些部分?

  1. 用戶開始與一個空表在主屏幕上,點擊菜單,進入「添加項目」。 (活動A)
  2. 給用戶一個新的活動,允許他們指定搜索條件,然後點擊「去」進行搜索。 (活動B)
  3. 用戶獲取結果列表,並可以點擊其中一個查看更多詳細信息。 (活動C)
  4. 用戶看到項目的詳細信息,並可以使用菜單項將其保存到他們的活動A.列表(活動d)

現在,我有每個活動相互調用活動的結果,然後它通過結果一路備份堆棧,因爲它返回到活動A.

有沒有辦法跳這個,因爲我只想要的結果在Activity D得到活動A直接?

需要注意的是,用戶應該仍然能夠通過每次活動都向後導航(使用後退按鈕),但如果他們明確地保存在活動d的項目,我希望它直接跳轉到活動A.

回答

1

只是使人們可以從我後來才知道獲益......

解決這一問題的關鍵是使用FLAG_ACTIVITY_CLEAR_TOP使用標誌意圖,在這種情況下。其他標誌在控制UI的流程中也很有用。

嘗試通過活動鏈接startActivityForResult()來解決此問題是一個壞主意。這意味着很難改變應用程序的流程。

1

我建議只調用活動(不使用* ForResult)調用,然後讓活動D用數據調用帶有INTENT_ADD_ITEM的活動A,然後讓活動A添加該項目。

希望這有助於...