我正在进行祷告应用,用户可以为每个祷告设置警报,但现在我面临的问题是,如果用户没有打开申请,如何更新警报的时间,因为祷告时间每隔3,4天就会改变一次。
警报我正在使用“UILocalNotification”。
我的问题是如何在应用程序关闭时执行操作?
答案 0 :(得分:1)
Apple非常关注可以在后台运行的内容,因为它不希望应用程序不必要地耗尽电池。我不知道您的要求是什么,但这些是您背景处理的唯一选择。
如果祷告时间对每个人来说都很常见,你可以设置一个服务器来定期将它们拉出来。
答案 1 :(得分:0)
使用eventkit,如果您将使用,后台处理它有限制,即使您的应用程序开始运行时也没有指定日期和时间(周期性循环),即使它关闭了。 第二个选项静音推送通知也有限制,例如用户没有互联网连接。他/她可能会错过警报。
最佳选择将是你的eventkit 示例代码
- (IBAction)btnAddEvent_touchUpInside:(id)sender {
EKEventStore *eventDB = [[EKEventStore alloc] init];
[eventDB requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
EKEvent *myEvent = [EKEvent eventWithEventStore:eventDB];
myEvent.title = @"New Event";
myEvent.startDate = [[NSDate alloc] init];
myEvent.endDate = [[NSDate alloc] init];
myEvent.allDay = YES;
[myEvent setCalendar:[eventDB defaultCalendarForNewEvents]];
NSError *err;
[eventDB saveEvent:myEvent span:EKSpanThisEvent error:&err];
if (err == noErr) {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Event Created"
message:@"Yay!"
delegate:nil
cancelButtonTitle:@"Okay"
otherButtonTitles:nil];
[alert show];
}
else
{
NSLog(@"error=%@",err);
}
}];
}
答案 2 :(得分:0)
没有。无法从后台更新开火日期。如果您使用的是本地通知,则只有在用户通过滑动通知/直接启动应用程序进入应用程序后才能执行某些操作。为了清楚起见,用户必须接受通知/打开应用程序,否则调用NOTHING。
否则您可以使用推送通知。因此,您可以随时向已注册APNS的设备发送推送通知