我正在开发一种实时与服务器通信的录音应用程序,因此需要持久的Internet连接。我在我的info.plist中包含了UIRequiresPersistentWiFi,并且在应用程序处于活动状态时也禁用了设备进入睡眠状态。然而,这可以理解地对设备的电池寿命产生严重影响。用户最终不得不将其连续插入。对于被吹捧为取代手持式录像机的应用程序,这是一个严重的缺点。我的应用程序还有许多从iPhone发送到服务器的xml线程,因此无线连接至关重要。
我的问题是: 1.是否有可能仅在会话期间需要时以某种方式打开UIRequiresPersistentWifi状态。例如,这可以仅在传输或xml更新到服务器期间打开,并在其他时间关闭吗? 2.同样,可以在会话期间以编程方式启用和禁用IdleTimer。例如,仅当设备上没有正在运行前台或后台任务时才启用idletimer。
是否有其他建议确保电池正常使用?我的所有用户都将使用iTouch 4或iPhone 4。
非常感谢任何帮助/建议。
答案 0 :(得分:1)
我的建议是不要连续与服务器通信,抱歉:(
是否可以将数据块缓存到手机上的文件中,并在一次大爆发中定期将数据块传输到服务器?对于XML也是如此。或者你的应用真的需要它实时广播吗?
据我所知,如果你已经指定了UIRequiresPersistentWifi,你就会坚持下去:(
对不起,可能不是你想要的答案!
答案 1 :(得分:1)
对第2部分的回答:是的,您可以启用和禁用空闲计时器,具体取决于用户或应用程序正在执行的操作以及持续时间。我知道有几个应用程序禁用空闲计时器,但如果用户没有触摸任何UI元素10分钟,则重新启用它,但如果用户再次启动一些长时间操作,则重新禁用它。等
第1部分的部分答案:使用无线电(发送wifi数据)需要电力。节省电量的一个好方法是尽可能不发送数据。也许在设备上缓冲大量数据,并尝试在以后突发上传。