在我的应用中,我需要在一段时间后更新数据,比如5天,用户使用应用程序5天后,下载视图就会完成任务。 我希望在用户使用应用程序5天后安排一些通知来触发下载功能。我可以自定义检查时间,但我不想对每个applicationDidBecomeActive执行检查,看看是否已经过了5天。这样做有没有其他干净的方式。我正在寻找NSNoticationCenter,但我找不到任何相关的事情。任何其他方式这样做
答案 0 :(得分:3)
您可以使用具有特定fireDate
的UILocalNotification。查看https://developer.apple.com/library/ios/DOCUMENTATION/iPhone/Reference/UILocalNotification_Class/Reference/Reference.html
答案 1 :(得分:1)
您可以使用UILocalNotification
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
NSDate *now = [NSDate date];
localNotification.fireDate = futureDate; //Modify the date according to your logic
localNotification.alertBody = @"Some Alert";
localNotification.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
您必须计算下一次下载何时发生,并在fireDate中提供该日期。
如果您的应用在后台,则会调用此方法。
application: didFinishLaunchingWithOptions:
如果它在前台,则会调用此方法
application: didReceiveLocalNotification:
在此处下载数据的条件,并在您的操作后创建另一个Localnotification并安排它
如果您不想使用本地通知,请保留NSSuserdefaults中存储的计划日期。当用户每次启动您的应用时都会检查日期和时间。然后在那种情况下做你的东西。它不需要在applicationDidBecomeActive中它可以在didFinishLaunchingWithOptions中。因此,当用户启动您的应用程序时,下载将会重新开始。