如何使用 iPhone SDK 4.0 实现警报
Posted
技术标签:
【中文标题】如何使用 iPhone SDK 4.0 实现警报【英文标题】:How to implement an alarm with iPhone SDK 4.0 【发布时间】:2010-07-10 16:04:35 【问题描述】:我想出了一个非常不寻常的 iPhone 闹钟。但到目前为止,我对如何实际实现这一点有一些想法。首先:暂时忘记后台服务,我将如何执行触发警报等的实际计时器?一个单独的线程?或者 SDK 是否包含我错过的任何不错的警报功能?当然,我需要尽可能提高电池效率。但是现在我没有后台进程。
请就此向我提出建议,因为这是这个应用程序的一个重要概念,无论它是否有效。
【问题讨论】:
【参考方案1】:我会创建一个local notification。与NSTimer
相比,本地通知的优势在于无论您的应用是否正在运行,它们都能正常工作。
【讨论】:
不过看起来很有趣。我还需要能够做一些 GPS 工作和下载/解析 XML。这可以在后台进行吗? 回答您的问题:“这可能在后台执行吗”--是的,有可能...但是您必须将您的应用声明为需要位置(它通过包含 UIBackgroundModes键入其 Info.plist 文件并将此键的值设置为包含“位置”字符串的数组)...请注意,它将保持 GPS 系统启用,因此会耗尽电池电量。 好的,这些限制让我的想法有些复杂,所以我想我还是得使用 NSTimer 并在前台运行。 链接已更改,新链接:developer.apple.com/reference/usernotifications/…【参考方案2】:您必须创建一个 UILocalNotification 对象并使用 scheduleLocalNotification 对其进行调度,这很简单,但有很大的限制。您的应用可能会或可能不会收到警报发生的通知。当警报出现时,它将以 AlertView 的形式出现。如果用户点击“关闭”,您不会收到通知。如果他点击“查看详细信息”,那么您会收到事件 didReceiveLocalNotification,您的应用会移动到前台并可以做任何您想做的事情。
您还可以注册 ios4 以接收有关位置更改的更新。可以解析 XML,但在后台运行方法的时间也有限制。
所有信息和示例代码都可以在这里找到:http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html
【讨论】:
是的,这不起作用,因为我需要在实际警报响起前几分钟检查位置。设置警报和火灾之间的时间跨度可能是几个小时。我想我只需要在前台对应用程序执行标准的 NSTimer 方法。以上是关于如何使用 iPhone SDK 4.0 实现警报的主要内容,如果未能解决你的问题,请参考以下文章
使用标准 api 播放视频风景 Iphone sdk 3.2 4.0