2017-01-01 97 views
1

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

+0

安排本地通知可能 – luk2302

回答

2

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

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

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

+0

感谢您的回答。问题是当应用程序在后台运行或手机进入睡眠模式时计时器冻结。我的应用程序要求它没有。我查看了一些运动计时器和正在运行的应用程序,并且当其他应用程序同时运行时它们不会冻结。 –

+0

应用程序在后台进入睡眠状态。但是,您可以节省进入休眠的时间,然后通过计算从现在到应用程序进入休眠状态的时间,重新启动计时器。你可以使用'NSDate',或者如果你需要更高的精度,你可以使用mach time。 –

+0

您是否研究过音频背景模式功能? – Gruntcakes