【问题标题】:How to make NSTimer and some operations keep working on background?如何让 NSTimer 和一些操作在后台继续工作?
【发布时间】:2013-02-16 14:20:11
【问题描述】:

我正在 4.3 模拟器和 3.2 xcode 上编写 ios 应用程序

带有计时器NSTimer的应用每分钟检查一些网站上的新闻,如果有新闻,应用会发出警报消息,并发出声音“...网站上有新消息!”

但如果我关闭应用程序或它进入睡眠状态,计时器会在后台停止。所以,我读过很多文章,比如 http://www.codeproject.com/Articles/124159/Hour-21-Building-Background-Aware-Applications

How keep NSTimer when application entering background?

他们都没有帮助我。我的问题:

1) 我应该使用什么技术或技巧来制作这样的应用程序?一位好人告诉我,我只需要使用推送通知。

2)如果要使用推送通知,我是否必须从苹果公司获得 100 美元/年的开发人员计划,并保持我的 Mac 书始终打开以创建推送通知服务器?

谢谢!

【问题讨论】:

  • 您必须每年支付 100 美元才能发布适用于 iDevices 的应用程序,而推送通知则要少得多。
  • 您还应该考虑升级到 Xcode 4.6。 Xcode 3.2 已经很老了。如果需要,您仍然可以支持 iOS 4.3。但此时大多数人都在运行 iOS 6.x。除非您有特定的理由,否则支持 iOS 4.3 毫无意义。

标签: ios objective-c xcode push-notification nstimer


【解决方案1】:

在后台运行只有少数获准的用途:音乐、导航、VOIP。如果您的应用不执行其中一项操作,则它最多只能在后台运行 10 分钟,然后它将被操作系统暂停。

推送通知需要服务器。您要么自己运行它,要么使用urbanairship.com 之类的服务。推送通知就像设备上的警报一样显示。它不会唤醒您的应用,除非用户通过响应警报来唤醒。

请阅读: http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

如果您没有支付 100 美元,您将无法在真实设备上运行您的应用。我认为模拟器无法正确模拟后台状态,因此调试后台任务会非常困难。

【讨论】:

  • 感谢您的回答。那么,学习推送通知会引导我实现目标吗?
  • 如果您的目标是在网站有新文章时向手机发送警报,那么是的,您可以通过推送通知来做到这一点,但您需要一个不断扫描该网站的服务器用于发送推送通知的更新。
猜你喜欢
  • 1970-01-01
  • 2020-03-05
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 2014-09-19
  • 2019-12-26
  • 1970-01-01
  • 2014-01-21
相关资源
最近更新 更多