我有一個singleInstance Activity和一個片段,我在onCreate()方法中實例化,並將其添加到一個FrameLayout容器中放入活動的佈局中。該活動除了打印日誌外不做任何事情。 我正在使用android-support-v4 lib和android 2.3.3。單個實例活動的Android片段生命週期
我觀察到一個奇怪的生命週期行爲與此設置,我不知道你是否可以幫我解釋這一點。我將提供日誌的生命週期:
活動的第一次調用:
07-07 15:12:17.990 V/FragActivity(2358): onCreate >> [email protected]
07-07 15:12:21.010 V/FragActivity(2358): onCreate <<
07-07 15:12:21.020 V/LayoutFragment(2358): onAttach > LayoutFragment{44f467c8 #0 id=0x7f070000}
07-07 15:12:24.021 V/LayoutFragment(2358): onAttach <
07-07 15:12:24.021 V/LayoutFragment(2358): onCreate > LayoutFragment{44f467c8 #0 id=0x7f070000}
07-07 15:12:27.020 V/LayoutFragment(2358): onCreate <
07-07 15:12:27.020 V/LayoutFragment(2358): onCreateView > LayoutFragment{44f467c8 #0 id=0x7f070000}
07-07 15:12:30.022 V/LayoutFragment(2358): onCreateView <
07-07 15:12:30.030 V/LayoutFragment(2358): onActivityCreated > LayoutFragment{44f467c8 #0 id=0x7f070000}
07-07 15:12:33.030 V/LayoutFragment(2358): onActivityCreated <
07-07 15:12:33.030 V/LayoutFragment(2358): onStart > LayoutFragment{44f467c8 #0 id=0x7f070000}
07-07 15:12:36.030 V/LayoutFragment(2358): onStart <
07-07 15:12:36.040 V/FragActivity(2358): onStart > [email protected]
07-07 15:12:39.041 V/FragActivity(2358): onStart <
07-07 15:12:39.041 V/LayoutFragment(2358): onStop > LayoutFragment{44f467c8 #0 id=0x7f070000}
07-07 15:12:42.040 V/LayoutFragment(2358): onStop <
07-07 15:12:42.040 V/FragActivity(2358): onResume > [email protected]
07-07 15:12:45.041 V/FragActivity(2358): onResume <
07-07 15:12:45.041 V/LayoutFragment(2358): onStart > LayoutFragment{44f467c8 #0 id=0x7f070000}
07-07 15:12:48.040 V/LayoutFragment(2358): onStart <
07-07 15:12:48.040 V/LayoutFragment(2358): onResume > LayoutFragment{44f467c8 #0 id=0x7f070000}
07-07 15:12:51.042 V/LayoutFragment(2358): onResume <
第一個問題:爲什麼是的onStop()片段的創建活動過程中的方法?片段在屏幕上顯示正常。
之後,我通過觸發意圖重新啓動活動,導致活動的onNewIntent()lidecycle方法。
07-07 15:13:17.220 V/LayoutFragment(2358): onPause > LayoutFragment{44f467c8 #0 id=0x7f070000}
07-07 15:13:20.220 V/LayoutFragment(2358): onPause <
07-07 15:13:20.230 V/FragActivity(2358): onPause > [email protected]
07-07 15:13:23.231 V/FragActivity(2358): onPause <
07-07 15:13:23.231 V/FragActivity(2358): onNewIntent > [email protected]
07-07 15:13:26.231 V/FragActivity(2358): onNewIntent <
07-07 15:13:26.231 V/FragActivity(2358): onResume > [email protected]
07-07 15:13:29.230 V/FragActivity(2358): onResume <
第二個問題:爲什麼片段的onResume()方法不被調用?它仍然可以在屏幕上看到。據我瞭解活動和生命週期方法應當齊頭並進......
後,我重新啓動活動第二次:
07-07 15:13:42.140 V/FragActivity(2358): onPause > [email protected]
07-07 15:13:45.143 V/FragActivity(2358): onPause <
07-07 15:13:45.143 V/FragActivity(2358): onNewIntent > [email protected]
07-07 15:13:48.144 V/FragActivity(2358): onNewIntent <
07-07 15:13:48.150 V/FragActivity(2358): onResume > [email protected]
07-07 15:13:51.151 V/FragActivity(2358): onResume <
現在fragmen的生命週期方法不會被觸發,在所有.. 那個怎麼樣?
您的我的英雄:)我認爲值得一提的是,您不必將源代碼導入到您的項目中,因爲所需成員的可見性被設置爲默認值。只需在你的src和一個擴展FragmentActivity的類中創建一個android.support.v4.app包。這足以提供對mResumed和mFragments的訪問。 – dskinner