【问题标题】:Working in the Background continuously by avoiding application 10 min time limitation通过避免应用程序 10 分钟的时间限制,在后台连续工作
【发布时间】:2013-09-09 00:06:20
【问题描述】:

我想创建一个服务类型的应用程序,它在后台运行,但问题是 iOS 应用程序有 10 分钟的限制。

有什么方法可以让我们连续运行我们的应用程序,我读过一些文章,如果我们在后台播放歌曲,那么应用程序在 10 分钟后永远不会终止,但我认为苹果不会批准这一点。

任何建议都会有所帮助。

【问题讨论】:

  • 简答,不。 Apple 对您在后台可以做什么和不可以做什么非常严格。您打算在后台执行哪些需要您的应用持续运行的操作?
  • 你可能会从这篇文章中找到一些提示stackoverflow.com/questions/11044095/…

标签: iphone ios ipad service ios6


【解决方案1】:

来自 iOS 开发者库:

iOS 7 支持两种新的应用后台执行模式:

定期需要新内容的应用可以在系统中注册 并定期唤醒或启动以下载该内容 背景。要注册,请包含 UIBackgroundModes 键 获取应用程序 Info.plist 文件中的值,并设置最小值 您希望使用 fetch 操作之间的时间 setMinimumBackgroundFetchInterval: 方法。您还必须实施 application:performFetchWithCompletionHandler: 应用程序中的方法 委托执行任何下载。使用推送通知的应用程序 通知用户新内容可用现在可以使用这些 启动后台下载操作的通知。支持 这种模式,包括 UIBackgroundModes 键与 应用程序的 Info.plist 文件中的远程通知值。你的应用 代表还必须实施 application:didReceiveRemoteNotification:fetchCompletionHandler: 方法。

第一种情况: 通过将setMinimumBackgroundFetchInterval: 设置为UIApplicationBackgroundFetchIntervalMinimum 或以秒为单位的任何其他数字(在您的AppDelegate 中),将通知系统您的应用需要更新其内容,即使它在后台也是如此。

请注意。获取间隔是最小值而不是最大值!因此,您的应用程序将在系统决定时唤醒。这可以是一天一次或一天多次。就我而言,我的应用程序正在更新大约。每 10 分钟一班,直到 19:00。在那之后,大约花了。下一次更新需要 7 小时,下一次更新需要 3 小时。第二天,同样(每 10 分钟一班,直到 19:00)。

如果您要求从 Internet 进行定期更新(高效且低电池消耗),但不适用于需要在短时间内更新的内容,例如电池电量或电池状态,则此技术非常理想。

希望这会有所帮助。

iOS 7 仍处于 Beta 版本。因此,在正式发布之前,上述所有内容都可能会发生变化或更新。

【讨论】:

    【解决方案2】:

    @rckoenes 的简短回答是正确的,但在 iOS7 中,您可以在 Apple's developer portal 上做到这一点:

    通过采用新的 iOS 7 中的多任务 API。新服务允许您的应用更新 信息和在后台下载内容而不会耗尽 不必要的电池。更新可能发生在机会主义 时间并根据使用情况智能安排,因此您的应用程序 可以在用户需要时在后台更新内容。

    【讨论】:

      猜你喜欢
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多