应用程序关闭时如何执行操作?

时间:2015-07-02 08:12:55

标签: ios uilocalnotification alarm

我正在进行祷告应用,用户可以为每个祷告设置警报,但现在我面临的问题是,如果用户没有打开申请,如何更新警报的时间,因为祷告时间每隔3,4天就会改变一次。

警报我正在使用“UILocalNotification”。

我的问题是如何在应用程序关闭时执行操作?

3 个答案:

答案 0 :(得分:1)

Apple非常关注可以在后台运行的内容,因为它不希望应用程序不必要地耗尽电池。我不知道您的要求是什么,但这些是您背景处理的唯一选择。

  1. Push notifications
  2. Background processing
  3. 如果祷告时间对每个人来说都很常见,你可以设置一个服务器来定期将它们拉出来。

答案 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的设备发送推送通知