Android启动Service系统适配演进

2020-02-27  本文已影响0人  lllllittlep

Android8.0

后台服务限制:处于空闲状态时,应用可以使用的后台服务存在限制。 这些限制不适用于前台服务,因为前台服务更容易引起用户注意。

这个限制是:

Google在Android 8.0之后对于处于后台的App启动Service进行了严格的限制,不再允许后台App启动后台Service,如果使用会直接抛出异常

所以在启动服务得时候应

Intent intentService = new Intent(this, MyService.class);

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {

    startForegroundService(intentService);

} else {

    startService(intentService);

}

Android9.0

因为适配Andorid8.0启动服务使用了前台服务

9.0 要求创建一个前台服务需要请求 FOREGROUND_SERVICE 权限,否则系统会引发 SecurityException。

解决方法就是AndroidManifest.xml中添加FOREGROUND_SERVICE权限:

<uses-permissionandroid:name="android.permission.FOREGROUND_SERVICE"/>

参考文章:

https://weilu.blog.csdn.net/article/details/80965631

https://weilu.blog.csdn.net/article/details/98336225

上一篇下一篇

猜你喜欢

热点阅读