项目targetSdkVersion升级到26后,对应的的是Android O版本,即Android 8.0系统。经测试发现针对8.0及以上安卓版本手机,AndroidMainfest.xml中静态注册的广播接收器失效,当App中对应intent filter类型广播发出时,广播接收器中的onReceive方法并未被系统回调。
 
且在Android Studio Logcat中,出现如下所示错误信息提示:

2018-12-20 17:34:55.588 749-767/system_process W/BroadcastQueue: Background execution not allowed: receiving Intent { act=com.corn.ui.setting.Action.TEST_BROADCAST flg=0x10 } to com.corn/.biz.setting.CornTestBroadcastReceiver
 
核查Android官方文档,Android 8.0系统,对后台执行有进一步限制,包括对隐式广播的限制。

对应Logcat中信息,搜索Android framework源码,按Logcat中的日志关键词搜索到对应代码位置。
这里推荐使用 http://androidxref.com/
可以选定Andrid版本,以及对应源码项目等搜索项搜索。
 
 
上图else if中条件,与官方文档阐述一致,想要广播发送继续生效,可以使此条件不满足即可。
对应的,一般可以指定对应的广播接收器Component,或对应的广播接收器包名。
对应intent,常用的具体方法可以是:intent.setClass()或intent.setComponent()或intent.setPackage()等写法
 
进一步,官方文档中指出了ACTION_PACKAGE_REPLACED 就是一种隐式广播,而ACTION_MY_PACKAGE_REPLACED 则为显式广播,可以通过搜索代码进一步核实下,看看基本写法是否与上述逻辑一致。
 

 
可见,源码中写法与上述分析一致。

 

Android 8.0对隐式广播的进一步限制的更多相关文章

  1. 安卓开发学习笔记(四):Android Stuidio无法实现隐式Intent是为什么?

    一.首先检查我们的代码: FirstActivity.java(主活动程序当中的代码):Button3监听器后面的代码就是我们隐式Intent的业务逻辑所在了,大家可以往下面看看,大概在代码的第57行 ...

  2. Android 显示意图和隐式意图的区别

    意图在android的应用开发中是很重要的,明白了意图的作用和使用后,对开发会有很大帮助.如果没有把意图搞懂,以后开发应用会感觉缺些什么.        意图的作用:        1.激活组件   ...

  3. 【Android】Android 4.0 无法接收开机广播的问题

    [Android]Android 4.0 无法接收开机广播的问题   前面的文章 Android 开机广播的使用 中 已经提到Android的开机启动,但是在Android 4.0 有时可以接收到开机 ...

  4. Android中显示和隐式Intent的使用

    显示启动activity                                                                                         ...

  5. ANdroid5.0不能隐式启动service,必须显示,解决办法,加服务端包名

    Intent intent = new Intent(); intent.setAction("com.viaembedded.veonvif.RemoteService");// ...

  6. 腾讯云安全:开发者必看|Android 8.0 新特性及开发指南

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 A ...

  7. Android 8.0 新特性

    Android 8.0 (Android Oreo(奥利奥))新特性介绍 通知渠道 - Notification Channels 通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对 ...

  8. 开发者必看|Android 8.0 新特性及开发指南

    背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 Android 系统,今年为 Android 8.0.谷歌在今年3 月21日发布 Andro ...

  9. 【Android】6.0 添加Menu菜单组件、Intent启动活动、显式Intent、隐式Intent

    1.0 在helloworld项目基础上创建活动SecondActivity: 2.0 其中main.xml: <?xml version="1.0" encoding=&q ...

随机推荐

  1. Flask快速入门

    flask快速入门 1.1.三种框架比较 Django: 重武器,内部包含了非常多组件:ORM.Form.ModelForm.缓存.Session.中间件.信号等 Flask:短小精悍,内部没有太多组 ...

  2. 解决AES算法CBC模式加密字符串后再解密出现乱码问题

    问题 在使用 AES CBC 模式加密字符串后,再进行解密,解密得到的字符串出现乱码情况,通常都是前几十个字节乱码: 复现 因为是使用部门 cgi AESEncryptUtil 库,找到问题后,在这里 ...

  3. 一文读懂阻塞、非阻塞、同步、异步IO

    介绍 在谈及网络IO的时候总避不开阻塞.非阻塞.同步.异步.IO多路复用.select.poll.epoll等这几个词语.在面试的时候也会被经常问到这几个的区别.本文就来讲一下这几个词语的含义.区别以 ...

  4. Webpack 热部署检测不到文件的变化

    最近在用webpack开发,突然发现热部署检测不到文件的变化,相关webpack的代码并没有发生改变,而且同事们的webpack都是正常的,不能热部署严重影响我的开发效率. 网上查了一下原来 Webp ...

  5. Linux 操作系统基础知识

    1.操作系统总体介绍 •CPU: 就像人的大脑,主要负责相关事情的判断以及实际处理的机制.查询指令: cat /proc/cpuinfo•内存: 大脑中的记忆区块,将皮肤.眼睛等所收集到的信息记录起来 ...

  6. ActiveX、OLE和COM的关系(转自百度文档)

    比较流行的组件模型有COM(Component Object Model,对象组件模型)/DCOM(Distributed COM,分布式对象组件模型)和CORBA(Common Object Req ...

  7. 《Systems Performance》阅读笔记及收获

    本文共三部分: 笔记之前的废话是和书结缘的过程: Systems Performance笔记是正文,记录了读书笔记以及一些实践: 一些优化记录将之前做的一些优化归纳起来,同时也能反思做的如何,加入跟G ...

  8. mysqldump详解

    Ⅰ.mysqldump的简单使用与注意点 1.1 基本参数 只备份innodb,用不了几个参数,记住下面几个即可,其他的没什么卵用 -A 备份所有的database -B 备份哪几个数据库 -R 备份 ...

  9. 用Java为Hyperledger Fabric(超级账本)开发区块链智能合约链代码之部署与运行示例代码

    部署并运行 Java 链代码示例 您已经定义并启动了本地区块链网络,而且已构建 Java shim 客户端 JAR 并安装到本地 Maven 存储库中,现在已准备好在之前下载的 Hyperledger ...

  10. Java API获取topic所占磁盘空间(Kafka 1.0.0)

    很多用户都有这样的需求:实时监控某个topic各分区在broker上所占的磁盘空间大小总和.Kafka并没有提供直接的脚本工具用于统计这些数据. 如果依然要实现这个需求,一种方法是通过监控JMX指标得 ...