1. 程式人生 > >如何監聽 App 被關閉時 - iOS

如何監聽 App 被關閉時 - iOS

保存 保存數據 答案 被調用 port eth stat this cas

在 Appdelegate 裏

applicationWillTerminate

是處理應用程序將終止的時候

按道理,我們在這個地方去寫我們 App 被關閉時的操作就行。

但是,我發現 App 關閉的時候,並不會走到這裏來。

然後我看了下系統的註釋:當應用程序即將終止時調用。如果適當的保存數據。可看 appropriate. See also applicationDidEnterBackground:. 這個方法

好像和我遇到的問題沒啥關系! 我只想在 App 關閉的時候調用

// 應用程序將終止
- (void)applicationWillTerminate:(UIApplication *)application {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    NSLog(@"applicationWillTerminate");
}

好了,答案來了。

我們到 applicationDidEnterBackground 執行個方法,代碼如下:

// 我們到 applicationDidEnterBackground 執行下 beginBackgroundTaskWithExpirationHandler
- (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.
    [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:^(){
    }];
    NSLog(@"applicationDidEnterBackground");
}

// 這時候你就會發現 applicationWillTerminate 這貨被調用了,有沒有人過來解釋下。。
- (void)applicationWillTerminate:(UIApplication *)application {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    NSLog(@"applicationWillTerminate");
}

如何監聽 App 被關閉時 - iOS