【问题标题】:Fire NSTimer when in sleep睡眠时触发 NSTimer
【发布时间】:2023-03-22 22:35:02
【问题描述】:

我有一个 NSTimer 倒计时并在达到 0 时触发一个方法。但是当我按下 iPhone 上的睡眠按钮时,它会暂停计时器并在我重新唤醒 iPhone 时继续它。

当 iPhone 处于“睡眠”状态时,NSTimer 是否也有可能触发 - 类似于默认 Time-App 中的 Timer-Function?

或者我可以“假装”睡眠模式,让屏幕变暗而计时器继续吗?

谢谢

【问题讨论】:

  • 只有三个服务可以在后台运行:location trackingVoIPaudio。一般来说,当应用程序进入后台或手机进入睡眠模式时,所有其他线程都会被暂停。* (*这句话没有涵盖所有细节,具体解释请阅读Apple的相关文档。)
  • 但是,像来自 taptaptap 的 Serenity 这样的应用程序如何添加睡眠计时器(在一定时间后停止播放),如果 iPhone 处于“睡眠状态”,它也会触发?
  • 它绝对没有使用任何NSTimer,因为我上面写的原因但是audio服务可以在后台顺利运行。这是可能的。
  • 据我了解,在用户点击通知本身的按钮之前,我无法使用 UILocalNotification 触发方法。这与我的目的无关。

标签: ios nstimer


【解决方案1】:

您可以通过明确声明在后台任务中运行计时器来保持计时器运行,前提是计时器不超过 Apple 指定的后台任务时间限制。我记得读到这是大约。 10 分钟。

请参阅“在后台执行有限长度任务”部分下的文档 http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

【讨论】:

    猜你喜欢
    • 2012-12-02
    • 2013-03-28
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 2023-03-11
    • 2012-07-15
    • 2012-03-04
    相关资源
    最近更新 更多