swift 4 定时器在特定时间开始,然后做间隔

Posted

技术标签:

【中文标题】swift 4 定时器在特定时间开始,然后做间隔【英文标题】:swift 4 Timer to start at specific time, then do the interval 【发布时间】:2018-05-23 17:47:32 【问题描述】:

我想每天在同一时间调用一个方法(在一天结束时,比如 23.59)。 我明白要设置一个重复的方法来调用我这样做:

let date = Date()
let timer = Timer(fireAt: date, interval: 86400, target: self, selector: 
#selector(runCode), userInfo: nil, repeats: true)
RunLoop.main.add(timer, forMode: RunLoopMode.commonModes)

每 86400 秒重复一次,这意味着每天。 但是如何设置日期参数从23.59开始,我想要的具体时间。目前,它只是在代码调用它时熄灭。

非常感谢

【问题讨论】:

创建一个间隔为 1 天的计时器是没有意义的。只有当用户让您的应用在前台运行一整天时,它才会起作用。 如果应用程序关闭或在后台,是否不会调用此方法? 不,用户没有使用您的应用,计时器不会运行。 【参考方案1】:

听起来您可能需要进行静默通知:

Silent Push Notification Payload

What is difference between remote notification and silent notification in ios?

还有一个你可以查看的 UNNotifcationRequest 但它不是静默的:

Use UNNotificationRequest (UserNotificationFramework) for data only local notification on iOS

【讨论】:

以上是关于swift 4 定时器在特定时间开始,然后做间隔的主要内容,如果未能解决你的问题,请参考以下文章

ETL工具kettle怎么做定时任务

如何限制同时调用函数的多个定时器函数? Swift 3+

每 X 天本地通知 - Swift

CC2530强化实训03定时器间隔定时实现按键长按与短按

seam的定时轮巡

如何在 Swift 5 中使用 AV 音频播放器在特定时间间隔内快进或快退音频(如歌曲)?