2013-04-11 100 views
1

我一直在处理闹钟应用程序,并使用本地通知来弹出闹钟。 我还需要根据用户在用户设置中设置的时间间隔延迟闹钟。iPhone中的闹钟应用程序中的贪睡闹钟?

用户不能暂停,直至应用程序开始即下文提到的方法被调用。

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 

正如我打电话的方法,通过添加时间间隔在fireate中并重新安排本地通知来暂停闹钟。

的问题是应用程序来前景,并根据苹果公司的HIG我不应该终止应用程序或自动发送的应用背景,因此用户需要按下home键发送应用程序在后台。

最近,我遇到this app。它可以按照我想要的方式延迟闹钟。

还有一个问题是,我可以选择的声音从我的音乐库中this app播放。

任何想法这个应用程序如何管理这么做?

回答

0

为了你所追求的有几件事情需要考虑。你的方法使用UILocalNotification是正确的,所以这是一个好的开始。

为了实现一个“小睡”功能正常,你需要考虑在前台和后台都运行的应用程序。

  • 如果应用程序是在前台(或用户打开从通知横幅上的应用程序从外部)application:didReceieveLocalNotification:将被调用,您可以简单地更新你的UI显示打盹按钮,并安排从一个新的本地通知从NSUserDefaults加载的持续时间。
  • 如果应用程序处于后台并且用户关闭了通知,那么随后就无法尝试“延后”警报。

至于播放来自iTunes资料库的自定义声音看一看的soundName财产上UILocalNotification

+0

由于丹,我已经检查应用程序的状态,即如果应用程序是在前台,我可以做任何事我想要做的就像显示alertview,播放声音等问题是什么时候应用程序在后台?正如我在我提到的应用程序中看到的是在后台打盹。该应用程序是否可能使用推送通知而不是本地通知? – 2013-04-11 07:33:41

+0

对于本地通知的声名属性:Apple表示声音文件不应超过30秒。 iTunes资料库中的文件可能会超过30秒,我尝试从媒体控制器获取文件路径并将其设置为声音名称,但它没有奏效。我猜是因为iTunes文件大于30秒。或者我可能做错了。 – 2013-04-11 07:37:44

+0

是的,我会说他们正在使用推送通知并通过云中的Web服务控制警报。这样,如果通知未被清除,他们可以在x分钟后再推送一次,并“暂停”。那有意义吗? – 2013-04-11 17:03:19