如果您將它用於鬧鐘,最好的方法是使用本地通知。這樣你就不需要使用任何後臺處理模式。
當您的應用程序即將進入後臺(在您的應用程序委託中的applicationWillResignActive
或applicationDidEnterBackground
)時,獲取您的計時器剩餘多少時間。然後計劃爲本地通知在不遠的將來:
NSTimeInterval timeUntilNotification = ...
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [[NSDate date] dateByAddingTimeInterval:secondsUntilNotification];
localNotif.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
當你的應用再次變爲活動,確保取消所有通知與cancelAllLocalNotifications
。
我認爲這裏有一些關於後臺執行的內容......但是,我認爲如果將日期時間保存在applicationWillResignActive:app中會更好。委託的方法,然後重新計算applicationDidBecomeActive:方法中的剩餘時間。 祝你好運! ;) –
謝謝男人..我認爲它會工作:)。你是否認爲它是唯一的解決方案,或者我們可以挖掘其他替代品..像背景胎面..等等 – Gaurav