Android的每次平台更新,都一直在努力收紧应用权限。8.0也不例外,这次是限制应用后台启动service的权限。相关的问题现象,可参考http://blog.youkuaiyun.com/chenshengfa/article/details/71407704。
不过本文除了吐槽下新的后台限制对8.0平台适配带来的影响外,主要是说说本人在开发中发现的一些可规避的方法。先声明一下,由于应用权限问题,本文并不适合普通应用开发,仅做研究参考。
虽然Android官方在限制了后台service启动的同时,也给出了替代方案。但毕竟有些功能,是其他方案无法替代或即便替代了也无法达到以往的效果的。比如监听网络变化、监听亮灭屏等这些需求。真是一去不复返的坑,对于一些习惯了耍流氓的我们,真真是不方便了啊。以下,是方案正文。
1. 对于所有应用可以使用的解决方法。
1). 平台区分,8.0以下,爱咋咋地,以前怎样还怎样。
2). 8.0以上,统一一个常驻service,转为前台。方法为:将startService改成startForegroundService,并在对应的service创建的时候,使用startForeground