我有一個應用程序有4個活動,A,X,Y和Z從任何活動
返回結果A是一種落地活動,這顯示了一堆的信息從數據庫用戶。
X,Y和Z是由A開始的用於修改數據的活動。這些活動實際上不查詢數據庫,而是將更改後的信息返回給A,後者完成onActivityResult
中的所有工作。流程始終是A - > X或Y或Z - > A。這非常完美。
我想要做的是使用戶可以在X,Y和Z之間任意次數的導航,直到點擊保存按鈕。這將修改流程,使A→X→Y→Z→A是可能的。但是,數據只需要從點擊保存的Activity持久化,在該示例中,Z.A然後將從Z接收結果,處理此更改並繼續。如果用戶以這種方式導航,那麼X和Y中發生的事情並不重要,它們已被丟棄。
我在這方面做了一些嘗試。我最好的辦法是在X,Y或Z開始另一個不是A的活動後立即調用finish()
。這允許用戶在單擊保存時返回到A,這意味着它的導航方面是正確的,但發送的結果代碼是總是RESULT_CANCELED
。我已經研究過使用意向的標誌FLAG_FORWARD_RESULT
,但我沒有與它的經驗,並與已經開始爲結果的活動中使用時,它拋出一個錯誤。我不知道這是甚至正確的技術,因爲從我讀過的東西中,只有當調用活動和返回結果的活動之間會有一個活動時纔會使用它。
這樣的流程甚至可能嗎?基本上,我需要一個Activity來啓動另一個結果,允許用戶從第二個活動執行一些任意數量的導航,然後在結束導航時將結果返回到原始活動。它可能只是修改代碼,使得X,Y和Z自己完成數據庫訪問,但是如果可能的話,我寧願避免它。
這是一個好主意,謝謝! – MattDavis