NSTimer在设备锁定时触发

时间:2011-01-07 09:03:51

标签: iphone nstimer clock alarm nsrunloop

我正在制作一个闹钟。我使用NSTimer来安排我的警报。我的问题是当设备进入锁定模式时,我的NSTimer不会触发。我认为NSTimer不会触发,因为我的应用程序在锁定时进入暂停状态。你能帮我找到解决问题的方法吗?

我找到了一些关于UIBackgroundModes的主题,但我不知道它对我有什么帮助。

谢谢..

UILocalNotification中的问题是当设备处于静音状态时,声音将无法听到。 我的实现是我正在使用NSTimer在应用程序处于前台或设备被锁定但应用程序当前正在运行时发出警报。当调用applicationDidEnterBackground:时,我将UILocalNotification安排为警报。

3 个答案:

答案 0 :(得分:2)

您必须使用本地通知(UILocalNotification)才能实现此目的。

查看Apple's documentation了解更多详情。

答案 1 :(得分:1)

您可以使用本地通知来实现此目的,即使您的应用程序在后台运行,您也可以通过本地通知接收警报。

您可以参考以下链接了解更多详情

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html

干杯

答案 2 :(得分:1)

即使用户锁定屏幕,也有一个小技巧可以让设备保持唤醒状态。

缺点是它耗费了相当多的电池寿命。我刚刚写了一篇关于如何做到这一点的博客文章。 How-To: Prevent iPhone from Deep Sleeping - blog.marcopeluso.com

此技术适用于iOS 4.2.1之前的所有iOS设备,我在App Store上有一个批准的闹钟应用程序使用它。

我创建了一段你可以使用的插入代码。 MMPDeepSleepPreventer on GitHub