当手机进入睡眠状态时,使用NSTimer of UILocalNotification作为计时器应用?

时间:2014-03-06 21:14:20

标签: ios nstimer uilocalnotification

我知道我之前曾问过的问题,但我找不到完整的答案。

我的问题是:我想创建小计时器应用程序,从20分钟(用户首选项)倒计时到0.用户可以看到剩余的时间。当计时器用完时,它应播放声音文件三次。 我已经使用NSTimer创建了一个应用程序。唯一的问题是,几分钟后,iPhone进入睡眠模式,应用程序停止。当我叫醒手机时,手机进入睡眠状态时倒计时已经停止。

我知道这个问题存在一些解决方案。

  1. 使用无声的音频文件并欺骗性地表现为应用程序需要背景音频资源(Apple可能会拒绝应用)
  2. 使用应该能够在后台运行的UILocalNotification。但据我所知,这种方法只能播放一次声音文件,因此不够用。
  3. 但除此之外,我应该:

    1. 在我的应用中使用UILocalNotification代替NSTimer(完全退出NSTimer)?
    2. 从手机进入睡眠模式的那一刻开始使用UILocalNotification(然后在用户唤醒手机时切换回NSTimer)?

1 个答案:

答案 0 :(得分:3)

选择第二个选项。在应用程序打开时使用NSTimer。当应用程序成为后台时,使任何计时器无效并安装具有适当开火日期的UILocalNotification实例。

当应用程序返回时,请阅读待处理的本地通知,启动相关开火日期的计时器并取消本地通知。

创建一个声音文件,其中包含3次播放的“单一声音”。

P.S。 UILocalNotification不在后台运行。本地通知在iOS上注册为事件,当发布日期时,iOS会采取相关操作。