【问题标题】:iOS 7 app background allowed activitiesiOS 7 应用后台允许活动
【发布时间】:2014-10-08 01:42:41
【问题描述】:

我正在开发一个应用程序,该应用程序将捕获位置更新、网络可达性、电话详细信息。我已经为我的应用注册了后台模式 - 位置更新和后台获取。

操作系统版本 - iOS 7.1

我对在后台模式下可以做什么有一些疑问..

(1) 由于我的应用在后台模式下注册了位置更新,我可以监控网络可达性、通话状态、电池电量吗?当我的应用在后台运行时注册位置更新时,我已经搜索了很多但并不完全清楚是否允许监视和捕获网络数据、电池数据和通话数据。

(2) 应用处于后台状态时是否允许运行辅助线程?

(3) 捕获所述数据的目的是将捕获的数据保存在sqlite数据库中,并使用Web服务发送到服务器。允许吗?

我的应用将进入 Apple 应用商店,因此我正在寻找可接受的方法。

我在某处读到,如果您的应用在后台模式下注册了 VOIP,那么您可以创建一个套接字并捕获数据。但我不确定这种方式是否可行或是否可以被 Apple App Store 接受。

【问题讨论】:

    标签: ios7 core-location iphone-5 reachability core-telephony


    【解决方案1】:

    是的,只要您不调用 OpenGL ES,您就可以做所有您打算做的事情(如您所说)。

    iOS 会阻止后台应用程序访问图形处理器,以便最前面的应用程序始终能够为用户提供出色的体验。您的应用不仅可以在后台调用 OpenGL ES 的情况下终止,还可以在之前提交的命令在后台刷新到 GPU 的情况下终止。在进入后台之前,您的应用必须确保所有之前提交的命令都已执行完毕。


    Apple 提供了一个很好的指南,说明在后台时该做什么和不该做什么:

    https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

    请参阅成为负责任的后台应用部分。

    【讨论】:

    • 感谢 Anindya 抽出时间为我提供答案。但根据同一链接中的苹果指南,当 iOS 应用程序处于后台模式时,它只能执行与“位置数据”相关的任务'、'Background Fetch'、'VOIP'、Audio、Bluetooth 等。但它并没有说明“在注册了“位置数据”等已批准服务之一时,是否可以使用其他服务,如可达性、呼叫状态,电池电量..”因此,如果您遇到任何此类用例,请帮助我理解..再次感谢..
    • 这是可能的,Apple 批准了它。 Apple 将检测非法行为的任务留给了 iOS 本身。 Apple 的主要担忧是前台应用程序应该被分配最大的资源。这就是所有这些限制的原因。只要你允许(通过不做繁重的事情,比如调用 OpenGL 或消耗高内存)Apple 就可以接受你。
    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 2014-08-22
    相关资源
    最近更新 更多