2011-09-30 99 views
1

有一個應用程序有兩個活動:啓動屏幕和主屏幕。安裝應用程序後,它會顯示飛濺,然後完成Splash活動並啓動主要活動。然後我測試3種情況:初始屏幕僅在第一次啓動應用程序時打開

  1. 應用程序啓動,第二項活動顯示在屏幕上。我殺了通過DDMS應用程序,啓動應用程序再次 - 一切是正確的 - 我再次看到濺起的水花,然後第二個活動

  2. 應用程序啓動時,第二個活動顯示在屏幕上。我按返回鍵,然後殺死進程,重新啓動應用程序 - 一切都還好嗎過,它推出第一濺

  3. 應用程序啓動時,第二個活動顯示在屏幕上。我按回家鍵,然後殺死進程,再次啓動應用程序 - 並有驚喜 - 應用程序啓動第二個活動,逃脫飛濺

什麼問題?

還有其他一些這樣的問題,但我仍然沒有答案。

有人可以解釋這種行爲嗎?

+0

你應該鏈接到相關的問題,因爲這可以幫助 – Merlin

回答

0

應用總是從你那裏纔開始.... 比方說你有5秒。 您使用啓動畫面打開應用程序4秒鐘。 你關閉了應用程序。 你打開它。 啓動畫面僅剩1秒

2

無論如何,啓動畫面並不是一個真正的好主意,因爲它使用戶感覺應用程序是一個附加組件,並略微打破整個系統生命週期。

但如果你真的要對發射活動啓動畫面,有兩種選擇。一個是在根目錄RelativeLayout內有兩個視圖。一個與ImageView內的啓動畫面和另一個佈局與活動的實際內容。然後,用你最喜歡的動畫隱藏ImageView

或者,您可以使用片段而不是內容佈局,並加載Activity實例(以前使用ActivityGroup完成的操作)。


更新:

好吧,我忘了提及這是爲什麼在你的應用中發生的。 在任何Android應用程序中,我們都有一組鬆散綁定的活動,並且(通常)在我們啓動新Activity時將其添加到Activity堆棧(以管理後退行爲)。我通常說,因爲如果需要可以更改該行爲(launchMode)。

當您按下後退按鈕堆棧被清空並且活動終止。另一方面,當按下主頁按鈕時,堆棧將在重新啓動時保存並恢復。

Android的生命週期可能會有點頭疼的時候,但是一旦你瞭解它是真正深思熟慮過。

這裏是一些進一步閱讀:Activity and Task Design Guidelines

+0

我只是學習Android開發。我描述的行爲似乎很奇怪。我可以從應用中排除啓動屏幕,但我只是想了解這種奇怪的行爲 – Ashot

相關問題