【发布时间】:2015-06-25 08:03:09
【问题描述】:
我正在实现一个 iOS8 应用程序,它在后台运行并发送一个通知,每 10 分钟询问一个问题,持续 3 小时。我听说无法在后台运行计时器 3 小时,因为应用程序将在进入后台状态几分钟后暂停。真的吗?如果没有,应用商店会接受这样的应用吗?
【问题讨论】:
标签: iphone swift ios8 app-store
我正在实现一个 iOS8 应用程序,它在后台运行并发送一个通知,每 10 分钟询问一个问题,持续 3 小时。我听说无法在后台运行计时器 3 小时,因为应用程序将在进入后台状态几分钟后暂停。真的吗?如果没有,应用商店会接受这样的应用吗?
【问题讨论】:
标签: iphone swift ios8 app-store
在后台发送本地通知 3 小时是没有意义的。
最好的选择是准备一个逻辑,它将创建一个循环并安排多个本地通知 3 小时,例如,您可以安排 n 个通知持续 m 时间。这样,即使您的应用程序将被暂停,您也会收到本地通知,如果用户打开应用程序,您可以取消注册所有通知。
关于你的第二个问题: 在后台安排本地通知与 appstore 政策无关。
NSDate *newDate = [[NSDate date] dateByAddingTimeInterval:totalDuration];
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.fireDate = newDate;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
这只是一个粗略的代码,您可以通过创建具有特定时间间隔的循环来安排 localNotifications。只需输入您自己的逻辑,即 10 分钟 3 小时,并通过添加时间间隔来提供 newDate - 10*60secs
【讨论】: