我正在开发一个与服务器实时通信的录音应用程序,因此需要持续的互联网连接。我已在 info.plist 中包含 UIRequiresPersistentWiFi,并且还禁止设备在应用程序处于事件状态时进入休眠状态。然而,这是可以理解的,这会对设备的电池生命周期产生严重影响。用户最终不得不让其持续插入。对于一款号称要取代手持录音机的应用程序来说,这是一个严重的缺点。我的应用程序还有许多从 iPhone 发送到服务器的 xml 线程,因此无线连接至关重要。
我的问题是: 1. 是否可以仅在 session 期间需要时以某种方式打开 UIRequiresPersistentWifi 状态。例如,是否可以仅在向服务器传输或 xml 更新期间打开此功能,而在其他时间关闭? 2. 同样,可以在 session 期间以编程方式随意启用和禁用 IdleTimer。例如,仅当设备上没有运行前台或后台任务时才启用idletimer。
还有其他建议可以确保正常的电池生命周期吗?我的所有用户都将使用 iTouch 4 或 iPhone 4。
任何帮助/建议将不胜感激。
最佳答案
第 2 部分的答案:是的,您可以根据用户或应用程序正在执行的操作以及已执行的时间来启用和禁用空闲计时器。我知道有几个应用程序会禁用空闲计时器,但如果用户 10 分钟没有触摸任何 UI 元素,则重新启用它,但如果用户再次开始一些长时间操作,则重新禁用它。等等
第 1 部分的部分答案:使用 radio (发送 WiFi 数据)需要电力。节省电量的一个好方法是尽可能长时间不发送数据。也许设备上缓冲了大量数据,稍后再尝试突发上传。
关于iPhone 电池续航时间建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4610495/