在特定时间执行选择器

时间:2012-08-10 09:55:34

标签: objective-c ios

我想在午夜执行我的方法,但我不知道如何正确地执行此操作。每分钟检查一次,如果当前时间相等23:59,run方法看起来很愚蠢。计算从现在到午夜的时间间隔,并将其设置为nstimer的参数?

你能帮我解决这个问题吗?

更新: 对不起,大家好,我忘记了一件事:方法必须在没有任何用户通知的情况下运行后台。

3 个答案:

答案 0 :(得分: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 Appateate中实现这些方法:

- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application
- (void)applicationWillTerminate:(UIApplication *)application

希望这会有所帮助。


编辑后:

您可以使用[NSTimer ScheduleTimerWith.....]方法。

答案 1 :(得分:0)

使用某个时间安排的Local Notification

答案 2 :(得分:0)

有关类似问题的更多信息 - 请参阅下面的链接以获取更多信息,

How to set alarm for selected days in iphone?