SwiftIOSAPP生命週期

來源:互聯網
上載者:User

標籤:

應用代理類(AppDelegate):

AppDelegate類中定義了app進入不同生命週期(包括app啟動動、閑置、進入後台、進入前台、啟用、完全退出)時的回調方法。實際上在app啟動時,app會自動執行一個叫main的入口函數,它通過調用UIApplicationMain函數來建立出AppDelegate類執行個體,並委託其實現app在不同生命週期的定製行為。

應用程式的狀態如下:

Not running(未運行)程式沒啟動

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

Active(啟用)程式在前台運行而且接收到了事件。這也是前台的一個正常的模式

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

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

各個程式運行狀態時代理的回調:

1、application didFinishLaunchingWithOptions:當應用程式啟動時執行,應用程式啟動入口,只在應用程式啟動時執行一次。若使用者直接啟動,lauchOptions內無資料,若通過其他方式啟動應用,lauchOptions包含對應方式的內容。

2、applicationWillResignActive:在應用程式將要由活動狀態切換到非使用中時候,要執行的委託調用,如 按下 home 按鈕,返回主畫面,或全屏之間切換應用程式等。

3、applicationDidEnterBackground:在應用程式已進入背景程式時,要執行的委託調用。

4、applicationWillEnterForeground:在應用程式將要進入前台時(被啟用),要執行的委託調用,剛好與applicationWillResignActive 方法相對應。

5、applicationDidBecomeActive:在應用程式已被啟用後,要執行的委託調用,剛好與applicationDidEnterBackground 方法相對應。

6、applicationWillTerminate:在應用程式要完全推出的時候,要執行的委託調用,這個需要要設定UIApplicationExitsOnSuspend的索引值。 

SwiftIOSAPP生命週期

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.