2011-11-14 46 views

回答

0

從蘋果的文檔:

當用戶按下Home鍵或系統啓動另外一個 應用程序,前臺應用程序轉換到非活動狀態,然後爲 背景狀態。這些轉變導致調用應用程序 委託的applicationWillResignActive:applicationDidEnterBackground:方法

applicationDidEnterBackground:告訴委託該應用程序 現在是在後臺。

- (void)applicationDidEnterBackground:(UIApplication *)application

參數

用途:本單應用程序實例。

討論

在iOS中4.0和更高,這種方法被調用,而不是 applicationWillTerminate:當用戶退出支持背景執行的應用 方法。您應該使用此方法來釋放共享資源,保存用戶數據,使無效的定時器和 足夠的應用程序狀態信息來將您的應用程序恢復到 其當前狀態,以防稍後終止。您還應該禁止更新應用程序的用戶界面,並避免使用某些類型的共享系統資源(例如用戶的聯繫人 數據庫) 。避免在背景中使用OpenGL ES也是必不可少的。

您執行此方法大約需要五秒鐘時間來執行任何任務並返回 。如果您需要更多時間執行 任何最終任務,則可以通過調用beginBackgroundTaskWithExpirationHandler:來請求 系統的額外執行時間。在 的練習中,您應該儘快從applicationDidEnterBackground:as 快速返回。如果在時間運行前該方法沒有返回,則應用程序終止並從內存中清除。

在退出此方法之前,您應該執行與調整用戶界面 有關的任何任務,但根據需要將其他任務(例如保存狀態)應該移動到併發調度隊列或輔助線程。 因爲它可能是您在 開始的任何後臺任務applicationDidEnterBackground:將不會運行,直到方法 退出後,您應該在 開始這些任務之前請求額外的後臺執行時間。換句話說,首先調用 beginBackgroundTaskWithExpirationHandler:然後在 調度隊列或輔助線程上運行任務。

該應用程序還張貼在其周圍會調用這個方法讓感興趣的對象有機會 的過渡響應的 同時 UIApplicationDidEnterBackgroundNotification時通知。

有關如何優雅地過渡到 背景的更多信息,以及有關如何啓動後臺任務在 退出時間的信息,請參閱iOS Application Programming Guide

相關問題