Android8 自定义广播接收不到的问题

1. 问题的前提:本人维护的一个应用是通过按键发送一个自定义广播,然后拉起服务。原来项目开发是在Android6,将该应用安装到Android7系统上面可正常使用,但是安装到Android8上面,死活收不到广播。通过百度参考了两篇文章(文章最后加备注),做了以下总结:

2.原因:Android8在静态广播的使用上做了一些限制具体可查看:https://developer.android.google.cn/about/versions/oreo/android-8.0.html

3. 解决办法:

(1)使用动态广播代替静态广播,具体可参考博客1。

(2)保留原来的静态广播,但是加入Component参数,具体可参考博客2。

我使用的是解决方式2(写了demo测试了一下),在必须要使用自定义静态广播的时候可采用这个方法,发送广播时加入ComponentName,参数1是自定义广播的包名,参数2是自定义广播的路径:
[java]  view plain  copy
  1. Intent it = new Intent("com.hisense.test.broadcast");  
  2. it.setComponent(new ComponentName("com.example.broadcasttest",  
  3.                         "com.example.broadcasttest.MyBroadcast"));  
  4. sendBroadcast(it);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值