Android 8.0(+)不允许在后台启动/创建Service

https://blog.csdn.net/Mike_Modern/article/details/80024464
Android 8.0(+)不允许在后台启动/创建Service,直接调用context.startService(intent)会宕机。

  • 临时解决办法:

将编译版本和目标版本降级到25,就可以避免因为8.0(26)不允许APP在后台启动Service而宕机。因为系统版本向后兼容。

  • 根本解决办法:
    1、SDK26 启动Service的方法:context.startForegroundService(context, Service.class);
    2、SDK26 Service启动时,即在onCreate方法中,context.startForeground(id, new Notification());

Android8.0后,当App targetSDK >= 26,几乎禁止了所有的隐式广播的静态注册监听。

https://www.freesion.com/article/6763314871/
https://blog.csdn.net/weixin_55806809/article/details/121125981

如果让静态广播收到,发送广播时需要添加:

intent.setComponent(new ComponentName("包名", "包名.类名"));//应用间广播
或
intent.setClassName("包名", "包名.类名");//应用内广播

0 条评论

发表回复

您的电子邮箱地址不会被公开。