iOS應用生命週期相關內容

2021-07-04 23:42:02 字數 1908 閱讀 8561

了解應用程式生命週期,在ios開發中相當重要,在實際當中,許多人對生命週期一知半懂,這樣在今後的開發中會遇到很多障礙,這樣在面對應用不同狀態時,就不知道如何進行相關處理,這等於給自己挖了不小的坑。因此對於ios生命週期需要引起注意。

一、程式的入口main 函式

int main(int argc, char * argv) }

二、乙個應用程式的構成

三、主執行迴圈

觸控事件發生在controls(例如button)中的處理與發什麼在其它views中的事件是不同的。control僅僅只有一些有限的互動,這些互動事件被重新打包成動作資訊傳遞給合適的目標物件。因此target-action設計模式使得controls在應用中觸發事件執行自定義**變得容易。

四、應用的執行狀態

1.not running(未執行):應用還沒有啟動,或者應用正在執行但是途中被系統停止。

2.inactive(非活動):當前應用正在前台執行,但是並不接收事件(當前或許正在執行其它**)。一般每當應用要從乙個狀態切換到另乙個不同的狀態時,中途過渡會短暫停留在此狀態。唯一在此狀態停留時間比較長的情況是:當使用者鎖屏時,或者系統提示使用者去響應某些(諸如**來電、有未讀簡訊等)事件的時候。

3.active(活動):當前應用正在前台執行,並且接收事件。這是應用正在前台執行時所處的正常狀態。

4.background(後台):應用處在後台,並且還在執行**。大多數將 要進入suspended狀態的應用,會先短暫進入此狀態。然而,對於請求需要額外的執行時間的應用,會在此狀態保持更長一段時間。另外,如果乙個應用要求啟動時直接進入後台執行,這樣的應用會直接從notrunning狀態進入background狀態,中途不會經過inactive狀態。比如沒有介面的應用。注此處並不特指沒有介面的應用,其實也可以是有介面的應用,只是如果要直接進入background狀態的話,該應用介面不會被顯示。

5.suspended(掛起):應用處在後台,並且已停止執行**。系統自動的將應用移入此狀態,且在此舉之前不會對應用做任何通知。當處在此狀態時,應用依然駐留記憶體但不執行任何程式**。當系統發生低記憶體告警時,系統將會將處 於suspended狀態的應用清除出記憶體以為正在前台執行的應用提供足夠的記憶體。

程式狀態變化圖:

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

說明:當應用程式進入活動狀態執行,

說明:當程式被推送到後台的時候呼叫。你的應用此時在後台執行很可能隨時都會掛起,所以要設定後台繼續執行,則在這個函式裡面設定即可,

說明:當程式從後台將要重新回到前台時候呼叫,此時應用還是非活動的。

說明:當程式將要退出時被呼叫,當應用處於掛起狀態時,並不會呼叫該方法。

說明:當程式載入後執行。

五、詳細生命週期

1、啟動生命週期

b、啟動應用進入後台:

2、響應暫時中斷

3、從後台到前台

4、從前台到後台 

參考:

ORACLE相關內容

1 em,dbca,netca,netmgr出現亂碼方案 cd oracle home jre lib mv font.properties font.properties.bak mv font.properties.zh font.properties em,dbca,netca,netmgr詳...

JVM相關內容

本地 native code 每個因素對記憶體占用的影響又會隨著應用程式 執行環境和系統平台的不同而變化,那怎樣計算總的記憶體佔用量?是的,想得到乙個準確的數字不是那麼容易,因為 你很難控制本地 native 部分。你能控制的部分只有堆大小 xmx,類占用的記憶體 xx maxpermsize,還有...

指標相關內容

1.指標是變數,佔4位元組,存放的是位址 2.指標型別與零值比較 if n null 或者if n null 3.野指標 int p 空指標 int p null 避免野指標 以char型別為例 char p char mallloc sizeof char 10 要包含標頭檔案 include 使...