iOS 的一些后台运行策略

iOS 虽然是一个以打造让用户自由使用而不用关心细节为目标的操作系统,但是对于有好奇心的同学们来说其实还是有很多细节问题可以追问的,从实际的应用场景出发,我们可以遇到的问题有:

  • 在虾米音乐这个 APP 中,有一个离线音乐包的功能,声称可以在 WiFi 状态下预下载一些音乐,然后让用户在没有 WiFi 的时候听,这个自然就涉及到这个离线音乐包更新的问题,考虑一个场景是:用户在上班路上打开音乐,这个时候没有 WiFi,到了办公室有 WiFi 的时候就关掉了 APP,然后等到下班路上又打开,鉴于 iOS 的后台策略,这样的话离线音乐包怎么更新呢
  • 在百度地图高德地图腾讯地图这些 APP 中,有一个地图包的概念,这个东西会在有新的离线包的时候自动更新,这个地图包一般比较大,几十兆的样子,考虑一个场景是,用户打开 APP 查一个地点,然后 APP 发现有地图包更新,自动拉起了下载的任务,然后用户把 APP 摁倒后台了,这个时候下载任务没完呢,一般来说可以继续,但是如果用户起身出门了,下载到一半,WiFi 变 2/3/4G 了,怎么办
  • 百度云这个 APP,可以自动把手机里的图片上传到百度云,但是这个上传的动作需要 APP 在前台才能触发,而理想的场景当然是用户随手拍,拍完就不管,百度云会自动上传到云端,这个 iCloud 可以实现,因为人家是嫡系,但是百度云是庶出啊,怎么搞呢,他有一个很神奇的搞法,说要向用户申请一个后台定位的权限,说明里说了,开启后台定位,就可以在用户有 WiFi 的时候自动完成上传备份的功能,这两个看上去没什么关系的东西居然能关联在一起,神奇吧,怎么实现的呢

上述种种,作为普通用户当然可以不关心,但是如果想关心,从何关心起呢,我之前把这些问题丢到过搜索引擎去查,可惜查到的都是面向用户的一些小技巧的问题,答非所问,后来发现这个,link,发现这个真是一个好东西啊,大略读一读,对于更好的使用上述场景很有帮助

Leave a Reply

Your email address will not be published. Required fields are marked *