android開發 - Activity生命週期

來源:互聯網
上載者:User

標籤:android   android開發   

本章主講Activity的生命週期



Activity整個生命週期有四種狀態,7個方法,3個嵌套迴圈 


狀態:

1.  Activity/Running 活動狀態

       指的是目前使用者正在互動的activity狀態

2. Paused                  暫停狀態

       指的是當前activity可見,但是被多士或者對話方塊遮罩時狀態

3. Stopped                停止狀態

       指的是被新的建立的activity遮擋時的狀態,它保留了之前的操作資訊和狀態,但是如果系統記憶體不夠,可能會被killed

4. Dead                     非使用中

       指的是當activity尚未啟動,或者被系統回收時處於非使用中,可以手動調用finish()方法,終結activity     


生命週期:

1. onCreate();

                在activity第一次建立時被調用,可以做一些變數初始化,綁定資料,顯示View視圖

2. onStart();

                建立完activity後,開始顯示視圖到介面上

3. onRestart();

               當activity停止,或者中斷後,重新顯示視圖時,會調用該方法

4. onResume();

                視圖在介面顯示後,可以與使用者互動了

5. onPause();

               當跳轉另一個activity時,或者停止前,或者銷毀前調用

6. onStop();

               當被另一個activity遮擋時調用,

7. onDestroy();

               當activity銷毀時調用


嵌套迴圈:

1. activity完整生命週期

     從onCreate()    到   onDestroy()

2. activity可視生命週期

    從onStart()        到  onStop()

3. activity前台生命週期

    從onResume()  到     onPause();


例如:使用LogCat列印生命週期 過程是

 1.完整生命週期

    onCreate()     ->     onStart()    ->   onResume()       ->    onPause()    ->    onStop()    ->   onDestroy()

2. 運行activity,生命週期過程是 

    onCreate()  ->  onStart()  ->   onResume()  

3. 橫豎屏切換時生命週期時 

    onSaveInstanceState()  -> onPause()   ->  onStop()  ->  onDestroy()  ->  onCreate()  ->  onStart()  -> onRestoreInstanceState()   -> onResume

4.當我們在AndroidMenifest.xml中的相應的activity中添加android:configChanges="orientation"時

   再橫豎屏切換,生命週期只會執行onConfigurationChanged()方法,

5. 一個activity跳轉另一個activity聲明周期過程是

    第一個activity   

           onSaveInstanceState()  -> 

           onPause()  ->  

           開始第二個activity

           onCreate() ->

           onStart()    -> 

           onResume()  ->

            第一個activity停止了

           onStop()   ->

           此時,返回第一個activity

           onRestart()  ->

           onStart()      ->

           onResume()  ->

          此時,第二個activity銷毀了

          onStop()   ->

          onDestroy()  

          


總結:activity跳轉到新的activity時,舊的activity會被儲存現場,並且停止了,新的activity被建立了,如果返回舊的activity時,新的activity會被銷毀掉了,舊的activity會執行onRestart()方法,然後顯示介面,並可互動狀態,所以onCreate()方法只會被調用一次,但是在橫豎屏切換時,那就相當於重新執行了一遍生命週期,銷毀橫豎屏前的對象,重新建立新的activity,如果在清單中配置了android:name="orientation"那麼,就會執行onConfigurationChanged()方法,並且生命週期不會重新執行一遍





android開發 - Activity生命週期

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.