0

我正在爲用戶將應用程序發送到後臺或完全退出應用程序時添加一些通知。但是,當他們退出應用程序時,將調用方法applicationDidEnterBackgroundapplicationWillTerminate。爲什麼如此,以及如何在用戶退出應用程序時調用applicationWillTerminateapplicationDidEnterBackground和applicationWillTerminate在用戶向上滑動時退出應用程序時調用

這是客觀-c,如果有人想知道。

+0

我已經測試過這種現象,因爲在我看來,一個新的,乾淨的項目。我有同樣的經歷。所以它與我的代碼無關。 – pnizzle

回答

0

眼看applicationWillTerminate被稱爲applicationDidEnterBackground後,我決定成立1秒的notification.fireDate從該applicationDidEnterBackground被稱爲點。當調用applicationWillTerminate時,它首先取消在applicationDidEnterBackground內安排的通知。

僞代碼:

-applicationDidEnterBackground() 
{ 
    [self scheduleLocalNotificationAtTimeIntervalFromNow:1.0f identifier: @"someIdentifier"]; 
} 

-applicationWillTerminate 
{ 
    [self cancelLocalNotificationWithIdentifier: @"someIdentifier"]; 
    [self scheduleLocalNotificationAtTimeIntervalFromNow:0.0f identifier: @"irrelevantIdentifier"]; 
} 
+0

這種方法,雖然俗氣,但同時適合我的場景。比獲取didEnterBackground和willTerminate的通知更好。 – pnizzle

0

applicationWillTerminate僅當應用程序在終止時未處於掛起狀態時纔會調用方法。

以下鏈接可以幫助你 -

Which function is called when iPhone app is terminated?

applicationWillTerminate when is it called and when not

+0

雙擊主頁按鈕以顯示多任務不會將應用程序置於後臺,我已經測試過這個。當我然後向上滑動以退出應用程序時,這兩種方法都會被調用。請給我一個關於何時調用'willTerminate'的實例。 – pnizzle

+0

無論如何,你的回答並沒有解決我的問題。我不是要求什麼時候它被調用或不被調用,而是需要知道爲什麼當退出應用程序時應該調用這兩者,而不是自己的'applicationWillTerminate'或者解決問題的方法 – pnizzle

相關問題