iOS的生命周期

APP的生命周期

像Android apps 一樣有生命周期刺洒。Apps就是用戶自定義的代碼,需要利用系統(tǒng)提供的資源完成特定的任務(wù)撇簿,所以了解Apps的生命周期是必要的柔袁。

APP 的main()函數(shù)

iOS系統(tǒng)是基于c 語言的,其Apps的入口當然也是main函數(shù)捣卤,不過main函數(shù)不用自己寫忍抽,有創(chuàng)建工程時自動完成。如圖下代碼:

#import "AppDelegate.h"

int main(int argc, char * argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

這個main函數(shù)的主要作用是將控制權(quán)交給UIKit framework董朝。[UIApplicationMain] 函數(shù)負責創(chuàng)建App 核心對象鸠项,通storyboard文件中加載用戶界面,調(diào)用自定義代碼做初始化工作子姜。

APP的結(jié)構(gòu)

在啟動的期間祟绊,UIApplicationMain 函數(shù)創(chuàng)建幾個關(guān)鍵對象開始運行APP,其中最關(guān)鍵是 UIApplication對象哥捕,這個對象讓APP和系統(tǒng)交互更加便利牧抽。 如圖2,這是大多數(shù)APP含有的model-view-controller架構(gòu)模式遥赚,這個模式將用戶數(shù)據(jù)扬舒、業(yè)務(wù)邏輯從界面中分離,并有利于iOS設(shè)備的適配凫佛。`

APP的狀態(tài)

APP具有以下幾種狀態(tài)讲坎,我們主要使用到的是Active和Background狀態(tài)孕惜。在Active狀態(tài)時,用戶程序處于前臺與用戶交互處理相關(guān)事件衣赶。進入后臺時可以進行音樂播放诊赊、錄音、位置更新府瞄、等操作碧磅。下圖為APP的狀態(tài)圖:


image.png
//啟動程序是最先調(diào)用的函數(shù)
-(BOOL) application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    return YES;
}
//在app顯示給用戶之前,最后的初始化操作遵馆。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    return YES;
}

/*通知APP將要變成前臺程序鲸郊,這里可以重啟被暫停的任務(wù),如果此程序在后臺進入可以選擇更新用戶界面货邓。
 */
- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

/**
 * 通知 APP 將進入前臺秆撮,
 *這里可以撤銷一些在為后臺運行而做的改變。
 **/

- (void)applicationWillEnterForeground:(UIApplication *)application {
    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}


/**通知APP將要離開前臺换况,(依次進行inActive -》background-》-Suspended)职辨。如果有電話接入、SMS消息戈二、是用戶退出舒裤、或者想后臺切換都會調(diào)用此函數(shù)。
 *應該使用這個方法暫停正在執(zhí)行的任務(wù)觉吭,取消定時器腾供、取消圖形渲染回調(diào),暫停游戲等操作鲜滩。
 */
- (void)applicationWillResignActive:(UIApplication *)application {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
}
/**
 *通知APP將要進入后臺狀態(tài)伴鳖,隨時可能被掛起。
 *應該使用這個方法:釋放分享的資源徙硅,存儲用戶數(shù)據(jù)榜聂、取消定時器、保存APP的狀態(tài)消息以用于恢復闷游。
 *如果APP支持后臺運行峻汉,當用戶退回時,調(diào)用此方法而不調(diào)用applicationWillTerminate脐往。
 **/

- (void)applicationDidEnterBackground:(UIApplication *)application {
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

/**
*通知 APP 將要終止休吠,如果程序被掛起將不調(diào)用。
*保存數(shù)據(jù)
**/
- (void)applicationWillTerminate:(UIApplication *)application {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末业簿,一起剝皮案震驚了整個濱河市瘤礁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌梅尤,老刑警劉巖柜思,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岩调,死亡現(xiàn)場離奇詭異,居然都是意外死亡赡盘,警方通過查閱死者的電腦和手機号枕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陨享,“玉大人葱淳,你說我怎么就攤上這事∨坠茫” “怎么了赞厕?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長定硝。 經(jīng)常有香客問我皿桑,道長,這世上最難降的妖魔是什么蔬啡? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任诲侮,我火速辦了婚禮,結(jié)果婚禮上箱蟆,老公的妹妹穿的比我還像新娘浆西。我一直安慰自己,他們只是感情好顽腾,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诺核,像睡著了一般抄肖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窖杀,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天漓摩,我揣著相機與錄音,去河邊找鬼入客。 笑死管毙,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的桌硫。 我是一名探鬼主播夭咬,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铆隘!你這毒婦竟也來了卓舵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤膀钠,失蹤者是張志新(化名)和其女友劉穎掏湾,沒想到半個月后裹虫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡融击,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年筑公,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尊浪。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡匣屡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出际长,到底是詐尸還是另有隱情耸采,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布工育,位于F島的核電站虾宇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏如绸。R本人自食惡果不足惜嘱朽,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怔接。 院中可真熱鬧搪泳,春花似錦、人聲如沸扼脐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓦侮。三九已至艰赞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肚吏,已是汗流浹背城舞。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工分扎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留被廓,地道東北人术荤。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像斋泄,于是被迫代替她去往敵國和親杯瞻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容