2012-10-11 44 views
7

我正在關注這四個主題Creating a Fragment,Handling the Fragment Lifecycle,Managing the Activity LifecyclePausing and Resuming an Activity。所以我對此有點懷疑。 我的問題是片段和父代活動生命週期在一起

  1. 如果A Activity B鍵Activity通過Intent但A不調用finish()方法那麼A將在Pause狀態,如果B是TransparentSemiTransparentStop狀態,如果B是Opaque。我對嗎?
  2. 如果A Activity包含Fragment˚F那麼如果一個會去Pause狀態則F會去Pause狀態,如果A將在Stop狀態則F將在Stop狀態了。我對嗎?
  3. 如果A調用B Activity而B是Transparent那麼A將處於Pause狀態,並且F也會如此。如果B打電話finish()那麼A將來到Resume狀態,但F會發生什麼?它會從暫停中恢復嗎?如果是,那麼如何以及什麼步驟,因爲我沒有看到Fragment生命週期中的任何直接鏈接,它直接表示onPause()onResume(),因爲Activity可以做到。

    希望我能問我想要什麼。對不起我的壞Englsh。

回答

3
  1. 你不能確保只有在onPause將在一個被稱爲如果B是半透明或我的理解部分可見:

    暫停

    另一個活動在前臺並且有焦點,但是這個 仍然可見。也就是說,另一個活動在 之上可見,並且該活動部分透明或不包括整個屏幕上的 。暫停的活動完全存在(活動 對象保留在內存中,它維護所有狀態和成員 信息,並保持連接到窗口管理器),但可能在極低內存情況下被系統殺死。

  2. 是的,你是對的:

    其中片段生活直接 活動的生命週期影響片段的生命週期,使得每個生命週期 回調的活動結果類似回調每個 片段。例如,當活動收到onPause()時,活動中的每個 片段都會收到onPause()。

    然而,相反是不正確的,這意味着如果一個片段接收到onStop,那麼並不保證Activity的onStop將被調用。

  3. 我不太清楚你最後一句話的意思,或者你是如何測試過的。根據該片段文件:

    公共無效的onResume()

    調用時,這個片段給用戶 和積極跑動可見。這通常依賴於Activity.onResume的 含有活動的生命週期

    它通常說,因爲它取決於如何片段可以通過活動來處理。

+0

事實上,我在上次聲明中提到,我們知道當Activity從onPause到onResume時,它直接進入onStop或onStop繼續執行onStop - > onRestart - > onStart-> onResume。但是活動中包含的片段是什麼?你可以在片段生命週期中看到onPause-> onStop - > onDestroyView - > onCreateView - > onActivityCreated - > onStart - > onResume。它會跟着這個嗎?如果不然,那爲什麼是這個生命週期? – MGDroid

0
  1. 如果通過意圖A活動呼叫B活動但A不調用finish()方法那麼A將在暫停狀態,如果B是透明或半透明的,並在停止狀態下,如果B是不透明的。我對嗎?

    是真正

  2. 如果一個活動包含片f那麼如果A將進入暫停狀態,則F將轉到暫停狀態,如果A將在停止狀態下則F將處於停止狀態太。我對嗎?

    是正確

  3. 如果A調用B活動和B是透明那麼A將在暫停狀態和F也會。如果B調用finish(),那麼A將進入Resume狀態,但F會發生什麼?它會從暫停中恢復嗎?如果是,那麼如何以及什麼步驟,因爲我沒有看到任何直接鏈接到Fragment生命週期中的直接鏈接,它將Activity的onPause()直接指向onResume()。

你明白什麼是正確的,即使在這種情況下也片段將在onPause從移動到的onResume狀態就像一個活動。 但不幸的是,在開發人員android中沒有太多文檔。 這可能是因爲他們想要避免可能造成更多混淆的複雜圖表。

+0

不是答案,我只找到重複的問題。 – akash89