你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> iOS 應用程序生命周期

iOS 應用程序生命周期

編輯:關於IOS

剛買了關東升老師的ios書,來記錄一下自己感覺有用的東西;

作為應用程序的委托對象,Appdeletage在應用程序的生命周期的不同階段會調用不同的方法。

首先說一下ios應用的五中狀態:

    Not Running (非運行狀態)應用程序未運行或者已經終止Inactive (前台非活動狀態)應用程序進入前台狀態,但是還不能接受事件處理Active (前台活動狀態)應用程序進入前台,能接受事件Background (後台狀態)應用程序進入後台,依然能夠執行代碼。如果有可執行代碼就會繼續執行,如果沒有,會進入掛起狀態Suspended (掛起狀態) 不能執行代碼,如果系統內存不夠應用程序會被終止

    ios應用程序在這些狀態轉換過程中,iOS系統會調用Appdelegate的一些方法,並且發送通知。

    這裡主要說一些主要的方法;

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    程序啟動並進行初始化是調用

    - (void)applicationWillResignActive:(UIApplication *)application

    程序從活動狀態進入非活動狀態的時候調用

    - (void)applicationDidEnterBackground:(UIApplication *)application

    程序進入後台時調用該方法

    - (void)applicationWillEnterForeground:(UIApplication *)application

    程序進入前台但是還未處於活動狀態時調用該方法

    - (void)applicationDidBecomeActive:(UIApplication *)application

    程序進入前台並處於活動狀態時調用

    - (void)applicationWillTerminate:(UIApplication *)application

    應用程序被終止時調用

    以上這6個方法都是在Appdegate.m中自動生成的;

    非運行狀態---啟動場景

    程序啟動的時候共經歷3個狀態 Not running->Inactive->active 在Not running->Inactive 階段 系統會調用 (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 在Inactive->active階段 系統會調用 (void)applicationDidBecomeActive:(UIApplication *)application

    點擊Home鍵---應用退出場景

    這種情況下又分兩種情況: 1、可以在後台掛起 2、不能在回台掛起 先說第一種情況共經歷4種狀態 Active->Inactive->background->Suspended Active->Inactive 階段調用 (void)applicationWillResignActive:(UIApplication *)application
    Inactive->background階段 這個階段不會調用上面列出的方法 background->Suspended階段調用 (void)applicationDidEnterBackground:(UIApplication *)application

    第二種情況 Active->Inactive->background->Suspended->Not running 五中狀態
    Active->Inactive 系統不會調用上述方法,這裡與第一種情況不同
    Inactive->background階段 這個階段不會調用上面列出的方法 background->Suspended階段調用 (void)applicationDidEnterBackground:(UIApplication *)application Suspended->Not running 調用 (void)applicationWillTerminate:(UIApplication *)application

    掛起重新運行場景

    Suspended->background->Inactive->Active Suspended->background 這裡不會調用上述方法
    background->Inactive調用
    applicationWillEnterForeground:(UIApplication *)application
    Inactive->Active調用
    (void)applicationDidBecomeActive:(UIApplication *)application

    內存清除---應用場景終止

    該應用程序處於後台運行(掛起狀態),如果系統發出低內存警告的時候,為了滿足其他應用對內存的需求,就會清除內存終止程序。 background->Suspended->Not running(background->Suspended是程序運行完代碼後進入掛起狀態) 在這種情況下系統不會調用任何方法;

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved