我正在尝试构建一个应用程序,该应用程序将使用 iPhone 上的游戏工具包点对点连接,以便找到您周围使用该应用程序的其他人并与他们交换信息。
我的问题是 - 当应用程序在后台运行并且 iPhone 处于睡眠状态时,是否可以使用点对点连接?如果是,我需要做一些特别的事情吗?
此外,当应用程序在后台运行/iPhone 处于睡眠模式时,我能否使用地理位置、本地通知和 HTTP 请求?
我正在尝试构建一个应用程序,该应用程序将使用 iPhone 上的游戏工具包点对点连接,以便找到您周围使用该应用程序的其他人并与他们交换信息。
我的问题是 - 当应用程序在后台运行并且 iPhone 处于睡眠状态时,是否可以使用点对点连接?如果是,我需要做一些特别的事情吗?
此外,当应用程序在后台运行/iPhone 处于睡眠模式时,我能否使用地理位置、本地通知和 HTTP 请求?
iOS 中的后台模式非常严格。
当您的应用程序移至后台时,您有操作系统授予的“有限时间”让您正确完成工作(完成下载、保存文件、关闭某些连接等)。之后,对于 iOS 允许的一些长任务,您将无能为力。iOS 允许您运行的唯一长任务是:
(来源)
因此,如果您通过蓝牙使用对等连接,您可以(理论上)在后台模式下执行此操作。这与地理位置相同。
但是,如果您想使用本地通知,则需要在移动到后台之前注册它们,对于 HTTP 请求也是如此。有关更多信息,请查看此文档:App States and Multitasking。