我想在午夜執行我的方法,但我不知道如何正確執行此操作。每分鐘檢查一次,如果當前時間相等23:59運行方法看起來很愚蠢。計算從現在到午夜的時間間隔並將其設置爲nstimer的參數?在特定時間執行選擇器
你能幫我解決這個問題嗎?
更新: 對不起,夥計們,我忘了關於此的一件事:方法必須在沒有任何用戶通知的情況下運行後臺。
我想在午夜執行我的方法,但我不知道如何正確執行此操作。每分鐘檢查一次,如果當前時間相等23:59運行方法看起來很愚蠢。計算從現在到午夜的時間間隔並將其設置爲nstimer的參數?在特定時間執行選擇器
你能幫我解決這個問題嗎?
更新: 對不起,夥計們,我忘了關於此的一件事:方法必須在沒有任何用戶通知的情況下運行後臺。
您可以使用本地通知:
UILocalNotification *notif = [[UILocalNotification alloc] init];
notif.soundName = @"sound.wav";
notif.alertBody = @"My Message";
notif.alertAction = @"Open";
// you need to configure interval and firedate to schedule everything
notif.repeatInterval = XXX;
notif.repeatCalendar = XXX;
notif.fireDate = XXX;
[[UIApplication sharedApplication] presentLocalNotificationNow:notif];
[notif release];
要檢測應用程序何時從通知中打開,您需要在您的App Delegate中實現這些方法:
- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application
- (void)applicationWillTerminate:(UIApplication *)application
希望這有助於。
後,您編輯:
可以使用[NSTimer ScheduleTimerWith.....]
方法。
使用Local Notification計劃在一段時間
http://stackoverflow.com/questions/10780517/how-to-set-alarm-for-selected-days-in-iphone – 2012-08-10 10:48:41
更多信息 - 找到以下更多信息的鏈接,
以下服務只能在後臺運行:'location services','VoIP'和'audio',當應用程序轉到後臺或設備進入睡眠狀態時,每個其他線程將被掛起。 – holex 2012-08-10 11:19:36