最近总结了之前项目中用到的后台语音播放功能,顺便记录一下后台模式,加深自己的印象。
后台运行状态:
- Not running:应用还没有启动,或者应用正在运行但是途中被系统停止。
- Inactive:当前应用正在前台运行,但是并不接收事件。一般每当应用要从一个状态切换到另一个不同的状态时,中途过渡会短暂停留在此状态。唯一在此状态停留时间比较长的情况是:当用户锁屏时,或者系统提示用户去响应某些(诸如电话来电、有未读短信等)事件的时候
- Active:当前应用正在前台运行,并且接收事件。这是应用正在前台运行时所处的正常状态
- Background:应用处在后台,并且还在执行代码,都只会在这个状态短暂停留(最多十分钟),然后就会被系统强制进入 Suspended 状态。
- Suspended:应用处在后台,并且已停止执行代码。
常用的后台模式:
- Audio, AirPlay and Picture in Picture
音频播放,录音,AirPlay及画中画的视频播放 - Location updates
一般用于导航应用中, 开启此选项后,应用推到后台,还可以得到西戎的定位更新,从而使得应用可以根据定位的变化做出不同的反应 - Background fetch
后台获取数据后,在用户打开应用之前就使APP有机会执行代码来获取数据,并刷新UI
*Remote notifications
iOS7之前推送的类型是很单一的,无非就是显示标题内容,指定声音等;iOS7之后设备在接受到远程推送后让系统唤醒设备和我们的后台应用,并先执行一段代码来准备数据和UI,然后再提示用户有推送。