2010-09-22 68 views
7

我開始使用Android,並且在多個活動之間切換時遇到了初學者問題。在Android中來回切換活動

我明白我可以通過調用一個意圖然後用setResult()返回兩個活動之間。我想知道的是如何在多個活動之間跳轉。具體而言,我想了解流程生命週期。我明白每個活動是如何開始的onCreated(),但是當我想回來時,我不確定如何實現onResume()或onRestart()。

所以基本上我有3個活動:Activity1,Activity2和Anctivity3。

我從Activity1開始,然後用Intent調用Activity2,Activity2調用Activity3。使用按鈕。現在我想從Activity3回到Activity1。我也在這裏做同樣的事情。製作一個意圖並調用startActivity(Activity1_Intent)。但它給運行時錯誤。

我想我需要實現OnResume()或onRestart(),但我不知道如何做到這一點。在onCreate()我做了一個GridView,所以當我回來時,我需要再次製作該GridView嗎?

如果有人可以對參考教程給出一個小的解釋,那就太好了。 非常感謝。

+0

如果您可以發佈導致運行時錯誤的代碼以及錯誤的堆棧跟蹤,我們可以在我們的答案中更加具體。 – Janusz 2010-09-22 13:08:23

+0

在開始另一個之前完成()第一個活動。 – 2010-09-22 13:49:53

回答

7

在您的清單文件集android:launchMode =「singleTop」到您的Activity1。

然後打電話給你的活動1用途:

Intent intent = new Intent(this, Activity1 .class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

FLAG_ACTIVITY_CLEAR_TOP:如果設置,以及正在啓動的活動在目前的任務已經運行,然後,而不是推出該活動的一個新實例,所有的在其上的其他活動將被關閉,並且這個意圖將作爲新的意圖被傳遞到(現在在頂部)舊活動。

FLAG_ACTIVITY_NEW_TASK:如果設置,此活動將成爲此歷史堆棧上新任務的開始。

http://developer.android.com/reference/android/content/Intent.html

1

由於Android 4.0,你可以在清單文件機器人只需設置:launchMode = 「singleTask」然後就沒有必要寫Java。