【发布时间】:2015-06-06 09:08:33
【问题描述】:
我正在开发基于基于服务器客户端的应用程序的扑克应用程序。当扑克应用程序在一段时间后由于应用程序无法向/从服务器发送/接收任何数据包而丢失 TCP/IP 连接后进入后台。服务器结束套接字连接。如何才能长时间建立连接并更新我的游戏 UI
【问题讨论】:
-
你真的不能。 VoIP 应用程序可以使用后台模式套接字,但您不能将该模式用于游戏。您可以使用推送通知,也可以让玩家从桌上站起来
我正在开发基于基于服务器客户端的应用程序的扑克应用程序。当扑克应用程序在一段时间后由于应用程序无法向/从服务器发送/接收任何数据包而丢失 TCP/IP 连接后进入后台。服务器结束套接字连接。如何才能长时间建立连接并更新我的游戏 UI
【问题讨论】:
您要求的主题名为"Background Execution"。
第一:
当应用进入后台时,您无法更新 UI。但是您将能够在使用 beginBackgroundTaskWithExpirationHandler 时完成对服务器的 API 请求并将数据保存在手机上。您可以使用此方法编写一个与您的服务器通信并处理您的应用程序将接收的所有数据的块。如果 App 再次进入前台,您可以使用后台收到的这些数据来更新您的 UI。
重要的是,这些后台任务必须在很短的时间内完成,所以这里有一个无限循环不是一个好主意。否则,iOS 将终止您的进程。在你的应用程序被后台运行后你真正得到的时间是由 iOS 决定的。
第二个:
如果您希望即使应用程序仍处于后台也始终保持 tcp/ip-connections 开启,Apple 提供了一种非常强大的后台模式,使您可以随时在后台运行代码。它被称为 VoIP 服务。不幸的是,您的应用程序应该提供一些 VoIP-Stuff,以免被 Apple 拒绝。这是关于这些服务的good article。
【讨论】: