【发布时间】:2014-01-08 08:45:31
【问题描述】:
我进行了套接字通信(iOS7)。它工作正常,但是当我的应用程序进入后台时它停止了。
谁能建议,如何继续套接字通信? 或者 建议任何其他方式来实现它。
谢谢,
【问题讨论】:
-
您是否在应用程序的 info plist 文件中注册了应用程序运行的后台模式?
-
为您的应用程序启用后台模式
我进行了套接字通信(iOS7)。它工作正常,但是当我的应用程序进入后台时它停止了。
谁能建议,如何继续套接字通信? 或者 建议任何其他方式来实现它。
谢谢,
【问题讨论】:
当应用程序进入后台时,iOS 确保必须断开套接字连接。但是您可能正在后台执行某些任务。因此在应用程序委托中使用 beginbackgroundtaskexpirationhandler 并创建一个后台任务实例。对于 iOS 7 及更高版本3分钟后将收到回调,您必须结束所有剩余的任务。确保您通过 UIApplication 实例调用 endbackgroundtask 否则应用程序将被强制终止。套接字连接在此持续时间后断开。如果您需要保持活动状态您的套接字连接您必须在 plist 文件中添加要求以支持不同的背景模式,其中苹果支持需要七种不同的支持
【讨论】:
你检查了吗:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// put stuff(code) to make continue socket communication
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
【讨论】: