【发布时间】:2017-12-21 12:54:10
【问题描述】:
我想让函数每 3 小时检查一次当前日期是否
所以我尝试执行以下代码在后台运行函数:
DispatchQueue.global().async {
while(true){
sleep(4)
DispatchQueue.main.async {
print("hello ")
}
}
}
但是当应用程序进入后台时它会停止,我的意思是当你最小化应用程序时,所以我想保持这个功能即使在最小化模式下也能运行。
我需要类似Android中service的东西,不知道有没有。
【问题讨论】:
-
你可以使用 NSTimer 来完成这个功能
-
你能用代码解释一下吗
-
@E-housma Mardini :iOS 不允许任何任务永远在后台运行。最好的办法是使用位置更新、过期处理程序等后台模式
-
你的意思是我应该使用位置监听器来完成我的功能?
-
@e-housma-mardini :考虑所有可能的背景模式,找出适合你的情况并使用它。您无法在后台运行任务,例如 android 中的服务。人们经常建议使用计时器、本地通知或静默通知之类的东西。一旦您的应用程序进入后台,计时器就会停止。您安排的本地通知将不允许您运行代码,尽管您可以将代码添加为操作,但再次需要用户干预最终静默通知不适用于此类事情,因此完全合适