美文网首页
关于Android8.0之后广播问题

关于Android8.0之后广播问题

作者: suwec | 来源:发表于2019-03-10 16:10 被阅读0次

做一个广播功能的时候遇到的问题,在此记录一下

后台执行限制
Android 8.0 为提高电池续航时间而引入的变更之一是,当您的应用进入已缓存状态时,如果没有活动的组件,系统将解除应用具有的所有唤醒锁。

此外,为提高设备性能,系统会限制未在前台运行的应用的某些行为。具体而言:

现在,在后台运行的应用对后台服务的访问受到限制。
应用无法使用其清单注册大部分隐式广播(即,并非专门针对此应用的广播)。

就是说无法隐式发送广播了

比如:

Intent intent = new Intent();
        intent.setAction(ACTION);
        sendBroadcast(intent);

上面这种发送广播的方法,如果时静态注册的广播就无法接收到广播

需要设置package或者componentName

Intent intent = new Intent();
        intent.setAction(ACTION);
 //       intent.setPackage(getPackageName());
        ComponentName componentName = new ComponentName(this,MyBroadCastReceiver.class);
        intent.setComponent(componentName);
        sendBroadcast(intent);

相关文章

网友评论

      本文标题:关于Android8.0之后广播问题

      本文链接:https://www.haomeiwen.com/subject/mfzupqtx.html