【问题标题】:Is it possible to run application in background forever in iphone?是否可以在 iphone 中永远在后台运行应用程序?
【发布时间】:2011-07-12 07:41:52
【问题描述】:

我知道使用 ios 4 可以按照本文档在后台运行应用程序 http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html

此文档指出,如果应用程序在后台不断更新用户的当前位置,则可以在后台运行它。但是我们必须只使用 CLLocationManager 来更新当前位置吗?我们可以使用其他 api,如谷歌纬度用于更新当前位置的api?那么应用程序是否有可能永远在后台运行?

【问题讨论】:

    标签: iphone ios4 gps location multitasking


    【解决方案1】:

    据我从您发布的文档中了解到,如果您在 info.plist 中将UIBackgroundModes 的值定义为location,则“系统应允许应用程序根据需要在后台运行”。所以,第一个答案是肯定的,应用程序可以在后台运行,并且会无限期地运行(直到电池寿命)。实际上,这很容易检查。

    无论如何,在我看来,这种功能是“保留”给类似 GPS 的应用程序的,Apple 真的很关心它的使用:

    对于需要定期提供更精确位置数据的应用程序,例如导航应用程序,您需要将应用程序声明为连续后台应用程序。此选项适用于真正需要它的应用程序,但它是最不可取的选项,因为它会大大增加功耗。

    所以,我知道 Apple 将彻底筛选所有激活此模式的应用程序,以评估它们是否真的需要持续更新(在这种情况下,可能不会让应用程序进入应用商店)。

    现在,回答您问题的第二部分,我认为 Apple 知道您的应用是否真正符合规则的一种方法是使用 CLLocationManager。风险在于,如果您使用其他服务,Apple 可能会在审核您的应用时认为您只需要后台时间而不需要不断更新位置。

    但这只是猜测……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多