如果你静态注册的广播无法接收到消息,请先检查下:你的安卓版本是不是8.0+


前言
Google官方声明:Beginning with Android 8.0 (API level 26), the system imposes additional restrictions on manifest-declared receivers. If your app targets API level 26 or higher, you cannot use the manifest to declare a receiver for most implicit broadcasts (broadcasts that do not target your app specifically).
大概意思就是说:从android 8.0(API26)开始,对清单文件中静态注册广播接收者增加了限制,建议大家不要在清单文件中静态注册广播接收者。

其实说白点:就是因为在清单文件中静态注册广播接收者,容易让一些"不法分子"获取用户的隐私(如:电话监听、短信监听等等),所以google限制了静态注册

解决方案(以android.intent.action.BATTERY_CHANGED为例):

动态注册不能放到activity中,因为动态注册必须要在activity消亡的时候调用unregisterReceiver,会随着activity的解锁消失而不能再接收广播。一般的办法是在activity起来后马上start一个service,这个service里动态注册一个broadcastreceiver,service必须常驻在系统内,所以要接收开机消息android.intent.action.BOOT_COMPLETED。

最新文章

  1. 关于layui
  2. 使用postMesssage()实现跨域iframe页面间的信息传递----转载
  3. 非IE内核浏览器支持activex插件
  4. 解决右滑返回手势和UIScrollView中的手势冲突
  5. IIC总线协议
  6. Mac实用技巧
  7. 【floyd求最小环】【Vijos 1046】【观光旅游】
  8. VMware vSphere 服务器虚拟化之二十 桌面虚拟化之准备虚拟桌面模版
  9. JAVA基础3——常见关键字解读(2)
  10. HashMap,LinkedHashMap,TreeMap对比
  11. LeNet-5识别MINIST数据集
  12. 笔记:Jersey REST 传输格式-XML
  13. ltp-ddt emmc_dd_rw
  14. Keepalive+nginx实现高可用负载均衡方案
  15. 《Mysql 字符集》
  16. whith ~ as 用法
  17. iOS8 生成二维码与条形码
  18. An Insight to References in C++
  19. Oracle SQL语句操作数字:取整、四舍五入及格式化
  20. 8 个用于业余项目的优秀 Python 库

热门文章

  1. pyg安装
  2. D3简介
  3. 为什么手游选择lua热更新方案。
  4. 真实世界的算法_pdf
  5. tfidf与bm25
  6. Visual Studio NuGet的地址(记录)
  7. egg开发系列--模板语法
  8. 跨时钟域之异步FIFO
  9. class声明中初始化静态成员变量的问题
  10. C语言学习--文件操作--文件流指针--打开文件