【发布时间】:2017-03-07 11:31:22
【问题描述】:
实际上,在我的应用中,我在不同时间启动了两个以上的计时器。在某些时间间隔后,我希望触发通知。当应用程序在前台但不在后台时,它工作正常。我该如何解决这个问题?
请帮忙。谢谢!
【问题讨论】:
-
在此处添加您的代码
标签: ios swift3 ios10 uilocalnotification
实际上,在我的应用中,我在不同时间启动了两个以上的计时器。在某些时间间隔后,我希望触发通知。当应用程序在前台但不在后台时,它工作正常。我该如何解决这个问题?
请帮忙。谢谢!
【问题讨论】:
标签: ios swift3 ios10 uilocalnotification
您需要执行以下操作...
您需要开启后台模式。
在 AppDelegate 中,添加此代码以在后台运行应用程序
创建属性
@property (nonatomic, assign) UIBackgroundTaskIdentifier backgroundTask;
然后执行以下操作...
- (void)applicationDidEnterBackground:(UIApplication *)application {
self.backgroundTask = [application beginBackgroundTaskWithExpirationHandler:^{
DLOG(@"End of tolerate time. Application should be suspended now if we do not ask more 'tolerance'");
}];
if (self.backgroundTask == UIBackgroundTaskInvalid) {
DLOG(@"This application does not support background mode");
} else {
//if application supports background mode, we'll see this log.
DLOG(@"Application will continue to run in background");
}
}
希望对你有帮助。
【讨论】:
你可以把两个定时器都处理成这个appdelgate方法
- (void)applicationDidEnterBackground:(UIApplication *)application {
}
当应用程序进入后台时调用此方法并且您的代码仍执行此方法,希望这对您有所帮助。
注意:首先在项目目标中启用后台模式 -> 可用性选项卡 -> 后台模式 -> 开启
【讨论】: