iOS應用程式生命週期

2021-07-23 04:29:26 字數 1291 閱讀 4393

ios的應用程式的生命週期,還是程式執行在前台還是後台,應用程式各個狀態的變換,對於開發者來說都很重要的。ios系統的資源是有限的,應用程式在前台和後台的狀態是不一樣的。在後台時,程式會受到系統的很多限制,這樣可以提高電池的使用和使用者體驗。

狀態如下:

not running 未執行 程式沒啟動

inactive 未啟用  程式在前台執行,不過沒有接受到事件。在沒有事件處理情況下程式通常停留在這個狀態

active 啟用  程式在前台執行而且收到了事件,這也是前台的乙個正常的模式

backgroud 後台  程式在後台而且能執行**,大多數程式進入這個狀態後會在在這個狀態上停留一會。時間到之後會進入掛起狀態。有的程式經過特殊的請求後可以長期處於background狀態。

suspended 掛起  程式在後台不能執行**。系統會自動把程式變成這個狀態而且不會發出通知。當掛起時,程式還是停留在記憶體中的,當系統記憶體低時,系統就會掛起的程式清除掉,為前台程式提供更多的記憶體。

告訴**程序啟動但還沒進入狀態儲存

告訴**啟動基本完成程式準備開始執行

當應用程式將要入非活動狀態執行,在此期間,應用程式不接收訊息或事件,比如來**。

當應用程式入活動狀態執行,這個剛好跟上面那個方法相反。

當程式被推送到後台的時候呼叫。所以要設定後台繼續執行,則在這個函式裡面設定即可。

當程式從後台將要重新回到前台時候呼叫,這個剛好跟上面的那個方法相反。

當程式將要退出時被呼叫,通常是用來儲存資料和一些退出前的清理工作。這個需要設定

現在啟動程式看看執行的順序

按下home鍵

雙擊home鍵,再開啟程式

當程式回到active狀態 ,  

方法應該上面提到的任務重新開始,比如重新開始timer, 繼續分發佇列,提高opengl es的幀率。不過遊戲要回到暫停狀態,不能自動開始。

應用程式在後台時的記憶體使用

在後台時,每個應用程式都應該釋放最大的記憶體。系統努力的保持更多的應用程式在後台同時 執行。不過當記憶體不足時,會終止一些掛起的程式來**記憶體,那些記憶體最大的程式首先被終止。

事實上,應用程式應該的物件如果不再使用了,那就應該盡快的去掉強引用,這樣編譯器可以**這些記憶體。如果你想快取一些物件提公升程式的效能,你可以在進入後台時,把這些物件去掉強引用。

下面這樣的物件應該盡快的去掉強引用:

在後台時,為了減少程式占用的記憶體,系統會自動在**一些系統幫助你開闢的記憶體。比如:

系統**core animation的後備儲存。

去掉任何系統引用的快取

去掉系統管理資料快取強引用

請參考

ios 應用程式生命週期

一 ios應用程式狀態機一共有五種狀態 1.not running 應用還沒有啟動,或者應用正在執行但是途中被系統停止。2.inactive 當前應用正在前台執行,但是並不接收事件 當前或許正在執行其它 一般每當應用要從乙個狀態切換到另乙個不同的狀態時,中途過渡會短暫停留在此狀態。3.active ...

IOS應用程式生命週期

程式的生命週期 a.程式的生命週期是指應用程式啟動到應用程式結束整個階段的全過程 二 ios應用程式5種狀態 1.not running 應用還沒有啟動,或者應用正在執行但是途中被系統停止 2.inactive 當前應用正在前台執行,但是並不接收事件 當前或許正在執行其它 一般每當應用要從乙個狀態切...

iOS 應用程式生命週期

剛買了關東昇老師的ios書,來記錄一下自己感覺有用的東西 首先說一下ios應用的五中狀態 這裡主要說一些主要的方法 程式啟動並進行初始化是呼叫 程式從活動狀態進入非活動狀態的時候呼叫 程式進入後台時呼叫該方法 程式進入前台但是還未處於活動狀態時呼叫該方法 程式進入前台並處於活動狀態時呼叫 應用程式被...