iOS -- app生命週期中代理方法的應用場景

如今有一個需求:app

在應用進入後臺的時候把用戶數據歸檔,應用再次展現的時候進行解檔,從中取出數據代理

 

在appdalegate裏有四個相關代理方法code

- (void)applicationWillResignActive:(UIApplication *)application //應用即將進入後臺


- (void)applicationDidEnterBackground:(UIApplication *)application //應用已經進入後臺


- (void)applicationWillEnterForeground:(UIApplication *)application //應用即將回到前臺


- (void)applicationDidBecomeActive:(UIApplication *)application//應用已經回到前臺

 

這時候問題來了:blog

進入後臺的時候,應該調用applicationWillResignActive,仍是applicationDidEnterBackground內存

進入前臺的時候,應該調用applicationWillEnterForeground,仍是applicationDidBecomeActiveio

 

 

在使用home鍵或者iPhoneX上滑退出的時候,沒有什麼區別class

 

可是,在從應用進入多任務後臺時,applicationWillResignActive調用,applicationDidEnterBackground沒有調用,而後在多任務後臺又點擊應用進入,applicationWillEnterForeground調用,applicationDidBecomeActive不掉用後臺

而在這期間,咱們的應用通常是不會由於內存問題退出的,在applicationWillResignActive裏歸檔沒有太大意義方法

在有電話的時候也是一樣的數據

因此咱們能夠把歸檔放在applicationDidEnterBackground裏

同理把解檔放在applicationDidBecomeActive裏

 

另外,applicationWillTerminate是應用在被清除的時候調用的,歸檔方法在這裏也要被調用

 

 

ps:這個需求實際上是個僞需求,用戶信息歸檔應該在獲取用戶信息和用戶信息變動的時候進行的,不會放在代理裏面

      解檔會在代理進行

相關文章
相關標籤/搜索