最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

老生常談iOS應(yīng)用程序生命周期

 更新時間:2017年04月23日 09:30:13   投稿:jingxian  
下面小編就為大家?guī)硪黄仙U刬OS應(yīng)用程序生命周期。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

開發(fā)應(yīng)用程序都要了解其生命周期。

今天我們接觸一下iOS應(yīng)用程序的生命周期, iOS的入口在main.m文件:

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

main函數(shù)的兩個參數(shù),iOS中沒有用到,包括這兩個參數(shù)是為了與標(biāo)準(zhǔn)ANSI C保持一致。UIApplicationMain函數(shù),前兩個和main函數(shù)一樣,重點(diǎn)是后兩個,官方說明是這樣的:

// If nil is specified for principalClassName, the value for NSPrincipalClass from the Info.plist is used. If there is no 
// NSPrincipalClass key specified, the UIApplication class is used. The delegate class will be instantiated using init. 
UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString * __nullable principalClassName, NSString * __nullable delegateClassName); 

如果主要類(principal class)為nil,將從Info.plist中獲取,如果Info.plist中不存在對應(yīng)的key,則默認(rèn)為UIApplication;如果代理類(delegate class)將在新建工程時創(chuàng)建。

根據(jù)UIApplicationMain函數(shù),程序?qū)⑦M(jìn)入AppDelegate.m,這個文件是xcode新建工程時自動生成的。

應(yīng)用程序的生命周期(AppDelegate.m):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
  // Override point for customization after application launch. 
  NSLog(@"iOS_didFinishLaunchingWithOptions"); 
  return YES; 
} 
 
- (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 throttle down OpenGL ES frame rates. Games should use this method to pause the game. 
  NSLog(@"iOS_applicationWillResignActive"); 
} 
 
- (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. 
  NSLog(@"iOS_applicationDidEnterBackground"); 
} 
 
- (void)applicationWillEnterForeground:(UIApplication *)application { 
  // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 
  NSLog(@"iOS_applicationWillEnterForeground"); 
} 
 
- (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. 
  NSLog(@"iOS_applicationDidBecomeActive"); 
} 
 
- (void)applicationWillTerminate:(UIApplication *)application { 
  // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 
  NSLog(@"iOS_applicationWillTerminate"); 
}

1、application didFinishLaunchingWithOptions:當(dāng)應(yīng)用程序啟動時執(zhí)行,應(yīng)用程序啟動入口,只在應(yīng)用程序啟動時執(zhí)行一次。若用戶直接啟動,lauchOptions內(nèi)無數(shù)據(jù),若通過其他方式啟動,lauchOptions包含對應(yīng)方式的內(nèi)容。

2、applicationWillResignActive:在應(yīng)用程序?qū)⒁苫顒訝顟B(tài)切換到非活動狀態(tài)時候,要執(zhí)行的委托調(diào)用,如 按下 home 按鈕,返回主屏幕,或全屏之間切換應(yīng)用程序等。

3、applicationDidEnterBackground:在應(yīng)用程序已進(jìn)入后臺程序時,要執(zhí)行的委托調(diào)用。

4、applicationWillEnterForeground:在應(yīng)用程序?qū)⒁M(jìn)入前臺時(被激活),要執(zhí)行的委托調(diào)用,剛好與applicationWillResignActive 方法相對應(yīng)。

5、applicationDidBecomeActive:在應(yīng)用程序已被激活后,要執(zhí)行的委托調(diào)用,剛好與applicationDidEnterBackground 方法相對應(yīng)。

6、applicationWillTerminate:在應(yīng)用程序要完全推出的時候,要執(zhí)行的委托調(diào)用,這個需要要設(shè)置UIApplicationExitsOnSuspend的鍵值。

初次啟動:

2013-05-24 20:20:31.550 LifeIOS[451:c07] iOS_didFinishLaunchingWithOptions

2013-05-24 20:20:31.551 LifeIOS[451:c07] iOS_applicationDidBecomeActive

按下home鍵:

2013-05-24 20:22:17.349 LifeIOS[451:c07] iOS_applicationWillResignActive

2013-05-24 20:22:17.350 LifeIOS[451:c07] iOS_applicationDidEnterBackground

點(diǎn)擊程序圖標(biāo)進(jìn)入:

2013-05-24 20:22:56.913 LifeIOS[451:c07] iOS_applicationWillEnterForeground

2013-05-24 20:22:56.914 LifeIOS[451:c07] iOS_applicationDidBecomeActive

程序中沒有設(shè)置UIApplicationExitsOnSuspend的值,程序不會徹底退出。

以上這篇老生常談iOS應(yīng)用程序生命周期就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

昭觉县| 临沧市| 大渡口区| 五华县| 龙陵县| 信阳市| 丰都县| 福泉市| 邻水| 红安县| 东源县| 壤塘县| 江安县| 娄底市| 鄂伦春自治旗| 陕西省| 平乡县| 汾西县| 苗栗县| 清水县| 宣汉县| 赤城县| 客服| 白朗县| 华坪县| 靖江市| 澎湖县| 美姑县| 建平县| 辉县市| 沙雅县| 通化县| 金昌市| 望江县| 定远县| 小金县| 香港 | 济宁市| 睢宁县| 松潘县| 大化|