IOS應用程序的5中狀態
1. Not Running(非運行狀態)。應用沒有運行或被系統終止。
2. Inactive(前臺非活動狀態)。應用正在進入前臺狀態,但是還不能接受事件處理。
3.Active(前臺活動狀態)。應用進入前臺狀態,能接受事件處理。
4.Background(后臺狀態)。應用進入后臺后,依然能夠執行代碼。如果有可執行的代碼,就會執行代碼,如果沒有可執行的代碼或者將可執行的代碼執行完畢,應用會馬上進入掛起狀態。
5. Suspended(掛起狀態)。處于掛起的應用進入一種“冷凍”狀態,不能執行代碼。如果系統內存不夠,應用會被終止。
在應用狀態躍遷的過程中,iOS系統會回調AppDelegate中的一些方法,并且發送一些通知。實際上,在應用的生命周期中用到的方法和通知很多,
狀態躍遷過程中應用回調的方法和本地通知
application:didFinishLaunchingWithOptions: UIApplicationDidFinishLaunchingNotification
應用啟動并進行初始化時會調用該方法并發出通知。這個階段會實例化根視圖控制器
applicationDidBecomeActive: UIApplicationDidBecomeActiveNotification
應用進入前臺并處于活動狀態時調用該方法并發出通知。這個階段可以恢復UI的狀態(例如游戲狀態等)
applicationWillResignActive: UIApplicationWillResignActiveNotification
應用從活動狀態進入到非活動狀態時調用該方法并發出通知。這個階段可以保存UI的狀態(例如游戲狀態等)
applicationDidEnterBackground: UIApplicationDidEnterBackgroundNotification
應用進入后臺時調用該方法并發出通知。這個階段可以保存用戶數據,釋放一些資源(例如釋放數據庫資源等)
applicationWillEnterForeground: UIApplicationWillEnterForegroundNotification
應用進入到前臺,但是還沒有處于活動狀態時調用該方法并發出通知。這個階段可以恢復用戶數據
applicationWillTerminate: UIApplicationWillTerminateNotification
應用被終止時調用該方法并發出通知,但內存清除時除外。這個階段釋放一些資源,也可以保存用戶數據
為了便于觀察應用程序的運行狀態,我們為AppDelegate.m中的方法添加一些日志輸出,具體代碼如下:
@implementation AppDelegate
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions { NSLog(@"%@", @"application:didFinishLaunchingWithOptions:"); …… return YES; }
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"%@", @"applicationWillResignActive:"); } - (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"%@", @"applicationDidEnterBackground:"); } - (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"%@", @"applicationWillEnterForeground:"); } - (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"%@", @"applicationDidBecomeActive:"); } - (void)applicationWillTerminate:(UIApplication *)application
{
NSLog(@"%@", @"applicationWillTerminate:"); } @end</pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!