iOS —— APP长时间后台

iOS应用在后台有600秒的执行限制,但通过VOIP、Audio和GPS可以实现更长时间的后台运行。Audiosession通过播放无声音乐文件可以突破限制,然而这种方法在audiosession被打断时可能导致程序无法正常保存现场。另一方面,VOIPsocket在数据到达时会唤醒程序,允许短暂执行。这两种方法在实际应用中都需要谨慎处理以避免问题。
摘要由CSDN通过智能技术生成

这样久了,便是一种习惯。

iOS后台任务后最多600秒的执行时间,若在后台下载或与服务器保持连接的App需要突破600秒限制。

iOS长时间后台运行:VOIP、Audio、GPS。

1、Audiosession

实现方法很简单,就是在后台一直播放一个无声的音乐文件,这样就相当于声明了Audio,就可以轻松突破600秒的限制了。

通过播放“静默”音让程序在后台执行的做法(即在audiounit回调函数中使用kAudioUnitRenderAction_OutputIsSilence标志位),虽然确实可以实现后台执行,但实践中限制很多。最大的问题就在于程序的audiosession不能被打断。当程序执行在后台时,只要另一个程序使用kAudioSessionCategory_RecordAndPlay(比如Skype)或者kAudioSessionCategory_SoloAmbientSound(印象中使用这个session的不多),那么本程序就会被立即打断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值