【问题标题】:Timer app to work when the screen is off ios计时器应用程序在屏幕关闭时工作 ios
【发布时间】:2017-01-01 17:46:42
【问题描述】:

我有一个计时器应用程序,它应该运行数小时并以特定间隔播放声音。当屏幕关闭(以节省电池)或其他应用程序(如 ibooks)打开时,我如何才能使这项工作?目前,我在 ViewDidLoad 中运行我的计时器功能。也许这就是问题所在。这里的正确方法是什么?

【问题讨论】:

  • 可能会安排本地通知

标签: ios nstimer


【解决方案1】:

使用UNNotificationRequest 安排用户通知请求。根据需要提供UNCalendarNotificationTriggerUNTimeIntervalNotificationTrigger 对象作为触发器。

如果您需要 iOS 9 及更低版本的支持,有一个类似的 UILocalNotification API 在 iOS 10 中已弃用,但可以在需要向后兼容的情况下使用。

请注意,一旦通知触发,它只是客户端,您的应用不会唤醒以执行任务。只有当用户选择激活通知时,您的应用才会获得运行上下文。

【讨论】:

  • 感谢您的回答。问题是当应用程序进入后台或手机进入睡眠模式时,计时器会冻结。我的应用程序要求它没有。我检查了一些运动计时器和正在运行的应用程序,当其他应用程序同时运行时它们不会冻结。
  • 应用程序在后台进入睡眠状态。但是,您可以节省进入睡眠的时间,然后通过计算从现在到应用进入睡眠的时间已经过去了多少时间来重新启动计时器。您可以使用NSDate,或者如果您需要更高的精度,您可以使用马赫时间。
  • 你研究过音频背景模式能力吗?
  • 背景音频无济于事。 Apple 不再允许应用程序在后台播放“静音”只是为了获得执行时间,对于不希望电池耗尽的用户来说,这也不是一个好主意。提醒:iOS 现在会显示哪些应用耗电最多,并且用户会删除滥用电池的应用。
  • 我认为这可行,但在这种情况下,可以对附加到运行计时器的声音信号做些什么呢?如果绝对需要,有没有办法让应用在后台合法运行?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多