在 Swift 4.2 中,后台获取每秒都在工作
Posted
技术标签:
【中文标题】在 Swift 4.2 中,后台获取每秒都在工作【英文标题】:Background Fetch working every Second in Swift 4.2 【发布时间】:2020-06-13 13:15:35 【问题描述】:看。我正在尝试使用 swift 4.2 创建一个 ios 应用程序,据我的客户说,它必须发出警报,但只能通过 QR 码停止。因此,我需要一个在后台工作的计时器,每秒钟检查一次时间,因为别的东西,用户可以在没有二维码的情况下停止它。我唯一找到的就是后台提取,但它可以每次都进行 1 秒检查吗?
有人有更好的主意吗?
干杯
这是我现在的源代码
应用委托:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
UIApplication.shared.setMinimumBackgroundFetchInterval(2.0)
//ini----------------------------background task
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
// fetch data from internet now
let time:TimerNow = TimerNow();
let hours = preferences.string(forKey: "hours");
let minutes = preferences.string(forKey: "minutes");
if((hours == time.getHours())&&(minutes == time.getMinutes()))
lem.onPlayCommand();
completionHandler(.newData)
//fin ---------------------------background task
【问题讨论】:
【参考方案1】:我认为您应该改用本地通知。当您想要通知已用时间时,它将被触发。您可以随时在任何您想要的条件下取消它。
IMO 计时器和后台获取不适合这种情况。
【讨论】:
谢谢。我已经考虑过了,但我需要一些允许我递归运行脚本的东西。由于声音会一直循环到 QR 读数,这样可以吗?你有例子吗? 我需要一些在小时和分钟匹配时运行函数的脚本。并且音乐必须随着通知自动播放以上是关于在 Swift 4.2 中,后台获取每秒都在工作的主要内容,如果未能解决你的问题,请参考以下文章
使用NSStringEnumerationOptions.ByWords获取错误 - Swift 4.2
每秒获取 Swift4 SCNScene 30 个快照,并在 UIImageView 的外部屏幕上平滑绘制