2012-08-10 99 views
0

我想在午夜執行我的方法,但我不知道如何正確執行此操作。每分鐘檢查一次,如果當前時間相等23:59運行方法看起來很愚蠢。計算從現在到午夜的時間間隔並將其設置爲nstimer的參數?在特定時間執行選擇器

你能幫我解決這個問題嗎?

更新: 對不起,夥計們,我忘了關於此的一件事:方法必須在沒有任何用戶通知的情況下運行後臺。

+0

以下服務只能在後臺運行:'location services','VoIP'和'audio',當應用程序轉到後臺或設備進入睡眠狀態時,每個其他線程將被掛起。 – holex 2012-08-10 11:19:36

回答

1

您可以使用本地通知:

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.....]方法。

0

使用Local Notification計劃在一段時間

+0

http://stackoverflow.com/questions/10780517/how-to-set-alarm-for-selected-days-in-iphone – 2012-08-10 10:48:41