我知道在 iOS 4 上,Wi-Fi连接曾经是持久性的,因此进入睡眠模式/锁定会使连接保持开启状态。
在下一个版本 iOS 5 中进行了修改,以延长电池续航时间。
在 iOS 5 中,要求将设备插入电源以便建立持久的Wi-Fi连接。
iPad进入睡眠模式/锁定后,Wi-Fi连接自动断开连接。
我的问题出现了,我正在通过WiFi发送大量数据,这可能需要花费太多时间。因此用户必须等待交易完成。
iPad可能会切换到睡眠模式/锁定,而发送过程需要更多时间,这将导致WiFi连接错误。
现在我已将 UIRequiresPersistentWiFi 设置为info.plist中的 YES 。然而,同样的网络问题再次发生。
我想保持/持续WiFi连接活动,即使iPad进入睡眠模式/锁定在 iOS5 。那么有没有其他方法来实现这一目标。
感谢。
答案 0 :(得分:1)
Phew ...最后我得到了一个 idleTimerDisabled
的解决方案。
它是一个布尔值,用于控制是否为应用程序禁用空闲计时器。
它可以防止iPad在应用程序运行时睡眠。
此属性的默认值为 NO
。当大多数应用程序在短时间内没有触摸作为用户输入时,系统会将设备置于屏幕变暗的“ sleep
”状态。
这样做是为了节省电力。但是,除了加速度计游戏之外没有用户输入的应用程序可以通过将此属性设置为 YES
来禁用“ {{1} } “避免系统睡眠。
我只是将值设置为 idle timer
,而我通过WiFi发送大量数据,并将值设置为 YES
当过程完成时。
示例:<强> NO
强>
注意:当您的应用不需要阻止屏幕锁定时,请务必将此属性重置为“否”。
您可以查看更多详情 here
答案 1 :(得分:0)
这是因为iOS处理Wi-Fi连接的方式。发生的事情是iPad进入睡眠模式(这种情况发生在5分钟不活动后)。此模式旨在延长电池寿命。在iOS 4上,Wi-Fi连接曾经是持久性的,因此进入睡眠模式可以保持连接(或切换到蜂窝数据)。这在下一个版本iOS 5中进行了修改,要求将设备插入电源以便建立持久的Wi-Fi连接。
答案 2 :(得分:0)
我刚看到这个问题,考虑到日期,我不知道这是否仍有帮助,但您是否尝试过使用UIApplication
的{{1}}方法?
您可以采取以下措施:
beginBackgroundTaskWithExpirationHandler:
您也可以在另一种方法中调用#3,因为您可能正在执行异步操作(在后台运行并异步调用消息)。您还可以查看the official docs上'beginBackgroundTaskWithExpirationHandler:`的文档以获取详细信息。
希望这有帮助! :)