Android Activity Lifecycle(Finish)

來源:互聯網
上載者:User

    廣大博友,看過後幫忙頂頂,謝謝大家!!!

    轉載請註明: http://blog.csdn.net/richway2010/archive/2011/06/29/6574987.aspx

   【博主:各位博友,網友們,大家網上好!歡迎光臨本部落格。 歡迎多多交流,多提意見,互相學習,互相進步,我們的口號是:好好學習,天天向上。】

    看過很多關於activity生命週期的文章,大多都只是講明一個圖例流程,並沒有把其中原理講清楚,下面加上個人理解,分析一下它的生命週期。

    跟其他手機平台的應用程式一樣,Android的應用程式的生命週期是被統一掌控的,也就是說我們寫的應用程式命運掌握在別人(系統)的手裡,我們不能改變它,只能學習並適應它。
    簡單地說一下為什麼是這樣:我們手機在運行一個應用程式的時候,有可能打進來電話發進來簡訊,或者沒有電了,這時候程式都會被中斷,優先去服務電話的準系統,另外系統也不允許你佔用太多資源,至少要保證電話功能吧,所以資源不足的時候也就有可能被幹掉。

 

看圖:

 

對分析:

1、啟動Activity執行的方法:onCreate()-->onStart()-->onResume()方法,此時程式處理運行狀態。

     方法原理:

     onCreate: 在這裡建立介面,做一些資料的初始化工作
     onStart: 到這一步變成使用者可見不可互動的
     onResume: 變成和使用者可互動的,(在activity棧系統通過棧的方式管理這些個Activity的最上面,運行完彈出棧,則回到上一個Activity)

2、結束Activity執行的方法:onPause()-->onStop()-->onDestory()方法,此時程式被銷毀。

     方法原理:

     onPause:到這一步是可見但不可互動 的,系統會停止動畫等消耗CPU 的事情,從上文的描述已經知道,應該在這裡儲存你的一些資料,因為這個時候你的程式的優先順序降低,有可能被系統收回。在這裡儲存的資料,應該在onResume裡讀出來,注意:這個方法裡做的事情時間要短,因為下一個activity不會等到這個方法完成才啟動
     onstop:變得不可見 ,被下一個activity覆蓋了
     onDestroy:這是activity被幹掉前最後一個被呼叫者法了,可能是外面類調用finish方法或者是系統為了節省空間的將它暫時性的幹掉,可以用isFinishing()來判斷它,如果你有一個Progress Dialog線上程中轉動,請在onDestroy裡把他cancel掉,不然等線程結束的時候,調用Dialog的cancel方法會拋異常的。

3、onPause()-->onResume轉化原理

Activity可以經常性地在resumed和paused狀態之間切換,當activity處理運行狀態時,有新的activity運行到前台,此時原activity將被壓入棧,當前activity處於棧頂。

 

4、閑置很長時間的activity-->到運行狀態過程

     onStop()-->onRestart()-->onStart()-->onResume()-->activity running

    

 

註:處於onPause,onstop, onDestroy,三種狀態下 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.