Swift: 倒计时后关闭应用
Swift: Shut down app after countdown
我创建了一个 4:00 分钟倒数计时器,当它达到 0:00 时会发出声音信号。我使用了一个功能来防止 phone 在计时器为 运行 时入睡。但是,这是我的应用程序的最后一个屏幕。因此,一旦声学最终信号结束,我希望应用程序慢慢关闭。我不知道把代码放在哪里。
这是我用来防止它入睡的代码:
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.sharedApplication().idleTimerDisabled = true
}
所以我想我可以使用
UIApplication.sharedApplication().idleTimerDisabled = false
反转它。当我将它放在 stopTimer 函数中时,它会在 0:00 处立即关闭。
func stopTimer() {
if count == 0 {
timer.invalidate()
timerRunning = false
playSound()
timerLabel.text = "DONE"
}
}
也许有一种方法可以延迟该过程,使其在 15 秒后关闭。我该怎么做?
应用不应自行终止。如果您这样做,应用商店将拒绝您。计时器结束后,只需将 idleTimerDisabled 设置为 false。然后系统将根据用户的设置和当前 activity 在未来的某个时间点进入休眠状态。 (只要用户与他们的设备交互,inactivity 睡眠定时器就不会启动。)
如我的评论和 linked answer 中所述,您可以使用 dispatch_after
:
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(15 * Double(NSEC_PER_SEC))) // the 15 indicates the seconds to wait
dispatch_after(delayTime, dispatch_get_main_queue()) {
UIApplication.sharedApplication().idleTimerDisabled = false
}
我创建了一个 4:00 分钟倒数计时器,当它达到 0:00 时会发出声音信号。我使用了一个功能来防止 phone 在计时器为 运行 时入睡。但是,这是我的应用程序的最后一个屏幕。因此,一旦声学最终信号结束,我希望应用程序慢慢关闭。我不知道把代码放在哪里。
这是我用来防止它入睡的代码:
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.sharedApplication().idleTimerDisabled = true
}
所以我想我可以使用
UIApplication.sharedApplication().idleTimerDisabled = false
反转它。当我将它放在 stopTimer 函数中时,它会在 0:00 处立即关闭。
func stopTimer() {
if count == 0 {
timer.invalidate()
timerRunning = false
playSound()
timerLabel.text = "DONE"
}
}
也许有一种方法可以延迟该过程,使其在 15 秒后关闭。我该怎么做?
应用不应自行终止。如果您这样做,应用商店将拒绝您。计时器结束后,只需将 idleTimerDisabled 设置为 false。然后系统将根据用户的设置和当前 activity 在未来的某个时间点进入休眠状态。 (只要用户与他们的设备交互,inactivity 睡眠定时器就不会启动。)
如我的评论和 linked answer 中所述,您可以使用 dispatch_after
:
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(15 * Double(NSEC_PER_SEC))) // the 15 indicates the seconds to wait
dispatch_after(delayTime, dispatch_get_main_queue()) {
UIApplication.sharedApplication().idleTimerDisabled = false
}