1

所以我在 iOS 中读到过,当您的应用在后台运行时,所有计时器都会暂停。我还读到您可以使用beginBackgroundTaskWithExpirationHandler像这样)在 bg 中运行任务。

我想要实现的是每 3 分钟调用一次方法,然后在第一个方法之前的固定时间调用另一个方法。我已经设法在一个NSTimer重复的方式中做到这一点,让我做到这一点。它工作正常,但当应用程序在后台时显然被禁用(或暂停) - 由于上述原因,我只能假设。

有谁知道是否有办法运行计时器或至少在特定时间后调用某些东西以便我可以做到这一点?

4

1 回答 1

2

基本上,如果您想继续在后台运行,则必须满足以下要求之一。来自苹果文档:

实现长时间运行的后台任务

对于需要更多执行时间来实现的任务,您必须请求特定权限才能在后台运行它们而不会被挂起。在 iOS 中,只允许特定类型的应用程序在后台运行:

  • 在后台向用户播放有声内容的应用程序,例如音乐播放器应用程序
  • 让用户随时了解其位置的应用程序,例如导航应用程序
  • 支持互联网协议语音 (VoIP) 的应用程序
  • 需要下载和处理新内容的报亭应用
  • 从外部配件接收定期更新的应用程序

实现这些服务的应用程序必须声明它们支持的服务并使用系统框架来实现这些服务的相关方面。声明服务让系统知道您使用了哪些服务,但在某些情况下,实际上是系统框架阻止了您的应用程序被挂起。

http://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW24

于 2012-07-25T15:48:23.417 回答