Android藝術——深看Activity的生命週期

來源:互聯網
上載者:User

標籤:attach   rest   onpause   onrestart   導致   star   tor   彈出對話方塊   cti   

探究Activity的生命週期

 

1.典型情況下的生命週期分析:onCreate 初始化工作,載入布局資源和資料;onStart ac正在啟動但是無法互動,後台;onResume ac可見,顯示在前台;onPause 正在停止,必須先執行完才能執行新的ac;Onstop 即將停止,回收工作;onDestory 即將銷毀,回收與資源釋放;onRestart 重新啟動

 

2.onStart和onResume、onPause和onStop,有什麼實質的不同。

答:onStart和onResume是從Activity是否可見這個角度來回調的;後者是從Activity是否位於前台這角度來回調的。

 

3.在新Activity啟動之前,棧頂的Activity需要先onPause後,新Activity才能啟動。不能在onPause中做重量級的操作,因為必須onPause執行完成以後新的Activity才能Resume。所以:我們知道onPause和onStop都不能執行耗時的操作,尤其是onPause,這也意味著,我們應當盡量在onStop中做操作,從而使得新Activity儘快顯示出來並切換到前台

 

4.異常情況下的生命週期分析

  1. )情況1:資源相關的系統配置發生改變導致Activity被殺死並且重新建立
    1. 例子:當前Activity處於豎屏狀態,如果突然旋轉螢幕,由於系統配置發生改變,預設情況下Activity就好被銷毀並且重新建立。
    2. 在這種意外情況下,系統會調用onSaveInstanceState來儲存當前Activity的狀態。這個方法只在異常終止的情況下出現,當新的Activity被建立後,系統會調用onRestoreInstanceState取出之前儲存的資料並且恢複。從時序上來說,onRestoreInstanceState的調用時機在onStart之後。
    3. 和Activity一樣,每個View都有S和R,都是通過委託思想,上層委託下層,例如TextView會儲存自己的文本選中狀態和常值內容。
  2. )資源記憶體不足導致低優先的Activity被殺死

                1.比較好的方法是將後台工作放在Service中從而保證進程有一定的優先順序。

                2.Activity按照優先順序來分:前台Activity(正在和使用者互動)>可見但非前台Activity(彈出對話方塊後,不能直接互動)>後台Activity(被暫停)。

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.