天天看點

Android四大元件之——Activity的生命周期(圖文詳解)

      聯系方式:[email protected]

      [android四大元件學習系列activity篇]

     上一篇文章講了activity的定義、狀态和後退棧,現在講講activity的重點和難點——activity的生命周期。

activity生命周期的回調方法:

Android四大元件之——Activity的生命周期(圖文詳解)
Android四大元件之——Activity的生命周期(圖文詳解)

       這些方法定義了activity完整的生命周期,實作這些方法,我們能監控activity生命周期中的三個嵌套循環(monitor three nested loops in the activity lifecycle)

        1.activity的entire lifetime(全部的生命期)發生在

                              調用oncreate()和調用ondestory()之間。

        在oncreate()方法中執行全局狀态的建立(例如定義布局),在ondestroy()方法中釋放所有儲存的資源。

       2.activity的visible lifetime(可見的生命期)發生在

                              調用onstart()和onstop()之間。

         在這個期間,使用者能在螢幕上看見activity,和它進行互動。

        系統在activity的完整壽命中可能多次調用onstart()和onstop(),正如activity交替地對使用者可見或隐藏。

      3activity的foreground lifetime (前台的生命期)發生在

                               調用onresume()和onpause()之間。

       在這期間,activity在螢幕上所有其他activity的前面,有使用者輸入焦點。

       一個activity能頻繁的在前台進入和出去之間轉變。

       下面這張圖很好的講解了activity的生命周期和上面說的三種生命期:

Android四大元件之——Activity的生命周期(圖文詳解)

       下面通過一個demo來學習以下activity的生命周期:

      demo很簡單,就隻有兩個activity,mainactivity和secondactivity和一個按鈕。點選按鈕,由mainactivity跳轉到secondactivity。

      mainactivity:

Android四大元件之——Activity的生命周期(圖文詳解)
Android四大元件之——Activity的生命周期(圖文詳解)

   secondactivity:

Android四大元件之——Activity的生命周期(圖文詳解)

 secondactivity

 使用activity需要在manifest.xml檔案中注冊:

Android四大元件之——Activity的生命周期(圖文詳解)

 manifest.xml

    1. 運作應用,mainactivity運作。

     可以看出一個activity運作調用的回調方法是:oncreate()->onstart()->onresume()

Android四大元件之——Activity的生命周期(圖文詳解)

    2. 點選跳轉按鈕,由mainactivity跳轉到secondactivity:

      1>secondactivity是dialog。

Android四大元件之——Activity的生命周期(圖文詳解)
Android四大元件之——Activity的生命周期(圖文詳解)

     由于secondactivity是dialog,是以mainactivity依然可見,是以隻調用了它的onpause()方法。

     2>若将secondactivity改為不是dialog(隻需在manifest.xml檔案中删掉 android:theme="@android:style/theme.dialog"這一行即可)

     再點選跳轉按鈕:

Android四大元件之——Activity的生命周期(圖文詳解)

      對于mainactivity,由于不可見,狀态由運作變為停止。

      依次調用了它的回調方法:onpause()->onstop()

      3.activity處于運作狀态時,點選傳回按鈕。

Android四大元件之——Activity的生命周期(圖文詳解)

        點選傳回按鈕,activity由運作狀态變為死亡狀态,依次調用它的回調方法:onpause()->onstop()->ondestroy()

      4.activity處于運作狀态,點選首頁按鈕,傳回桌面。

Android四大元件之——Activity的生命周期(圖文詳解)

       activity由運作狀态變為停止狀态,依次調用它的回調方法:onpause()->onstop()

       5.activity處于停止狀态,即由桌面傳回到activity。

Android四大元件之——Activity的生命周期(圖文詳解)

        停止->運作,依次調用回調方法:onrestart()->onstart()->onresume()

      6.activity處于運作狀态,旋轉螢幕:

Android四大元件之——Activity的生命周期(圖文詳解)

        可以看出,旋轉螢幕是一個銷毀activity然後重新建立activity的過程。

         運作->暫停->停止->死亡->運作

        依次調用回調方法:onpause()->onstop->ondestroy()->oncreate()->onstart()->onresume()

    7.activity處于運作狀态,手機此時鎖屏。

Android四大元件之——Activity的生命周期(圖文詳解)

    可以看出,手機鎖屏,此時由于activity不可見,會進入停止狀态。

    依次調用回調方法:onpause()->onstop()

    8.當應用正在運作時,手機鎖屏,然後解鎖回到應用界面。

Android四大元件之——Activity的生命周期(圖文詳解)

    可以看出應用從停止狀态恢複到運作狀态。

    依次調用回調方法:onrestart()->onstart()->onresume()

          本人郵箱:[email protected],歡迎交流讨論。      

          如果喜歡,請點推薦!謝謝~

繼續閱讀