2011-03-11 27 views
0

我有2個活動。活動A和活動B.兩者都通過意圖互相呼叫。活動A調用活動B.活動B訪問數據庫並通過putExtra()和getExtra()將其發送回活動A.
現在我的活動A宣佈是這樣的android:launchMode =「singleTask」
當我回到活動A我希望我的這個活動A被自動更新或刷新。但令我驚奇的是,我在調試時明白瞭如果我將一個activity聲明爲launchMode =「singleTask」,那麼它只會將屏幕顯示在棧頂。它實際上並不在代碼中。
是我理解正確的概念嗎?
我看到的解決方案是有一個刷新按鈕,並點擊該代碼和更新屏幕。但我不想這樣做。你認爲還有其他的選擇嗎?我不想改變launchMode =「singleTask」即使聲明爲android,也會自動更新第一個屏幕:launchMode =「singleTask」

在此先感謝。

+0

您是否嘗試過startActivityForResult(intent);並回到A檢查結果,並更新您的A. – 2011-03-11 06:02:09

+0

以及我還沒有嘗試過,但我懷疑它是否會有所幫助,因爲正如我所說的代碼根本沒有被訪問。但是,你也許是對的,我會試一試。 – 2011-03-11 06:11:22

+0

嘿它的作品,非常感謝你。請將您的答案作爲不同的專欄發佈,以便我可以投票贊成。謝謝 – 2011-03-11 07:27:20

回答

0

嘗試startActivityForResult(intent);而你B中setResult(RESULT_OK);finish();的B活性已經完成,並且在onActivityResult(int,int,intent);捕捉如果它是RESULT_OK結果代碼更新A.

0

無論哪個launchMode,當您從活動B切換到活動A時,必須調用onResume()方法。您可以將您的刷新代碼放在那裏以更新您的活動。

+0

我沒有做任何onPause(),所以我怎麼做onResume()?你可以請任何例子解釋。謝謝。 – 2011-03-11 06:54:33

+0

閱讀活動的LifeCycle:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle,只要您的活動A帶到後臺(即不在前臺),它就會進入onPause狀態。 – xandy 2011-03-11 08:03:48

0

把你的刷新部件中的onResume方法。一旦活動B完成您的onResume方法將在活動A中調用。

相關問題