记一个Android广播遇到的坑

问题1:静态注册广播发送不出去,自定义的Receiver收不到,反复检查没发现错误,后来知道发送广播时必须指定Receiver的包和Receiver的位置。eg:

        intent.setComponent(new ComponentName("com.example.myapplication",
                "com.example.myapplication.Custom"));

问题2:动态注册按原来的方法直接用registerReceiver(custom2,filter)会让程序崩溃,对你没看错是直接崩溃,后来发现又是安卓版本的锅,registerReceiver新版本多了一个参数(不知道有啥用)不写就会崩溃。改成如下代码可正常运行:

        Custom2 custom2=new Custom2();
        IntentFilter filter = new IntentFilter(ActionUtils.ACTION_MOVE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            registerReceiver(custom2,filter, Context.RECEIVER_EXPORTED);
        }

吐槽:版本问题真的麻烦,要排查半天,而且更新了也没发现什么大用,反而bug一堆。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值