2013-05-17 27 views
0

我在我的應用程序中有兩個活動,一個「主」和一個「提示」活動。 Prompt從主活動的ActionBar上的一個按鈕被調用,Prompt有幾個EditText對象和一個Spinner。提示還有一個按鈕,當按下按鈕時,應該驗證這些對象中的值,然後將它們發送回主活動。發送包到調用活動

我知道你可以把這個信息作爲一個Bundle放在一個Intent中,然後調用StartActivity。但是,如果我理解Activity的生命週期,那麼通過執行startActivity()調用來啓動Main Activity將會保留Main版本的舊版本並佔用不必要的資源,並且可以讓用戶「清除」回來提示,然後到舊的主要活動。

我希望將舊的主要活動以及Prompt活動從Backstack中移除,同時還將提示字段中的值發送到新的Main活動。任何人都可以幫助我找出最理想的方法來完成這個任務嗎?

謝謝!

回答

1

要做到這一點是開始PromptstartActivityForResult()那麼值隨例如返回onActivityResult()

Docs

如果由於某種原因,這會不會爲你工作,那麼你也許可以找到最好的方法一個Intent flag這將根據你的情況完成你所需要的。一個可能爲你工作是FLAG_ACTIVITY_REORDER_TO_FRONT這將調用startActivity那麼它將從堆棧

你被清除後,把你的MainActivity堆棧

的上方還,只要你對你的PromptActivity致電finish()應該看Google I/O Navigation。它解釋了導航以及堆疊的工作原理

+0

非常感謝你,我會立即嘗試並報告我的結果。 – Argus9

+0

不客氣。希望它有效。請參閱我的關於清除「提示」的編輯,我將很快發佈一個可能有用的鏈接 – codeMagic

+0

@ Argus9爲您完成了這項工作? – codeMagic