我想在午夜执行我的方法,但我不知道如何正确地执行此操作。每分钟检查一次,如果当前时间相等23:59,run方法看起来很愚蠢。计算从现在到午夜的时间间隔,并将其设置为nstimer的参数?
你能帮我解决这个问题吗?
更新: 对不起,大家好,我忘记了一件事:方法必须在没有任何用户通知的情况下运行后台。
答案 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)
有关类似问题的更多信息 - 请参阅下面的链接以获取更多信息,