我一直坚持这个并寻找答案。
我想要一个计时器在将来的确切时间开始。这是场景:
非常感谢任何帮助。
答案 0 :(得分:1)
不,在iOS中无法做到这一点。用户停止使用后,应用程序会很快停止(切换到另一个应用程序或锁定设备。)暂停意味着您没有获得任何CPU时间,并且可以在此之后的任何时间终止,而无需进一步警告。
除非在非常特殊的情况下(如果您是转弯导航应用或音乐播放应用),您才可以在后台运行几分钟。
如果你当时正在运行,你只能在特定时刻启动计时器,而你没有办法实现这一点。
我能想到的最好的方法是在所需的时间设置本地通知。这将向用户显示一条消息,让用户点击打开您的应用或关闭通知。如果用户点击打开您的应用,那么您将有机会启动计时器。
答案 1 :(得分:0)
是的,有一种使用UNUserNotifications进行此操作的方法。看起来像这样:
let requiredComponents: Set<Calendar.Component> = [.year, .month, .day, .hour, .minute, .second]
let components = Calendar.current.dateComponents(requiredComponents, from: viewing!.endTime)
let trigger = UNCalendarNotificationTrigger(dateMatching: components, repeats: false)
let request = UNNotificationRequest(identifier: "viewing\(viewing!.viewingID)", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { (error) in
}