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"/>
参考文章:
网友评论