NSTimer 在 sleep 模式下继续

标签 nstimer sleep

我有一个计时器应用程序,它使用 NSTimer 来跟踪分钟。即使设备进入休眠模式,我如何保持计时器运行?谢谢!

最佳答案

唤醒后调整通知

预定的 NSTimer 实例将在 sleep 期间暂停。您的应用程序需要响应 NSWorkspace 的唤醒通知并调整其计时器。

如果您不响应唤醒通知,您的计时器将恢复,但不会考虑 sleep 时间。

请参阅 Apple 的技术说明 QA1340 Registering and unregistering for sleep and wake notifications以获得适当的通知。

例子

考虑这种情况:

  • 创建一个计时器以在 5 分钟内触发
  • 等待 1 分钟
  • 让电脑休眠一个小时
  • 唤醒电脑
  • 定时器在唤醒时恢复
  • 定时器在唤醒后 4 分钟触发

  • 从计时器的角度来看,五分钟过去了。注意 NSTimer 使用的语言,它使用相对持续时间而不是绝对时间,scheduledTimerWithTimeInterval:invocation:repeats: .

    关于NSTimer 在 sleep 模式下继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20176980/

    相关文章:

    iphone - 如何使用ntimer显示秒?

    c++ - 延迟窗口在mfc上显示文本

    c - msleep(毫秒)与 msleep_interruptible(毫秒)

    c - sleep() 过早地停止了我的程序。我究竟做错了什么?

    iOS - 如何找到哪个方法占用了这么多时间

    ios - 在哪里禁用 NSTimer

    ios - 在后台执行游戏中的评分任务 Objective-c

    python - 试图模拟恒定字节率。混淆 time.sleep 结果

    python - 为什么 time.sleep() 准确性受 Chrome 影响?

    ios - 具有单独 timeleft 的多个 NSTimer