【发布时间】:2017-01-01 17:46:42
【问题描述】:
我有一个计时器应用程序,它应该运行数小时并以特定间隔播放声音。当屏幕关闭(以节省电池)或其他应用程序(如 ibooks)打开时,我如何才能使这项工作?目前,我在 ViewDidLoad 中运行我的计时器功能。也许这就是问题所在。这里的正确方法是什么?
【问题讨论】:
-
可能会安排本地通知
我有一个计时器应用程序,它应该运行数小时并以特定间隔播放声音。当屏幕关闭(以节省电池)或其他应用程序(如 ibooks)打开时,我如何才能使这项工作?目前,我在 ViewDidLoad 中运行我的计时器功能。也许这就是问题所在。这里的正确方法是什么?
【问题讨论】:
使用UNNotificationRequest 安排用户通知请求。根据需要提供UNCalendarNotificationTrigger 或UNTimeIntervalNotificationTrigger 对象作为触发器。
如果您需要 iOS 9 及更低版本的支持,有一个类似的 UILocalNotification API 在 iOS 10 中已弃用,但可以在需要向后兼容的情况下使用。
请注意,一旦通知触发,它只是客户端,您的应用不会唤醒以执行任务。只有当用户选择激活通知时,您的应用才会获得运行上下文。
【讨论】:
NSDate,或者如果您需要更高的精度,您可以使用马赫时间。