NullPointerException:method ‘android.content.BroadcastReceiver.onReceive‘ on a null object reference

每日一句正能量

简单,是生活的一种态度,是人生的一种境界;简单,让心灵有一种净化感,思想有一种健康感,精神有一种安详感;简单是广袤海洋的静谧深邃,是高原深秋的宽广无垠,它让凝涩的人生顺畅,把板结的心情融化,使喧嚣的世界灵动,可见,简单,不是空白,不是粗糙,不是简陋,是经历千锤百炼“复杂”后的状态,汇集了人生百味的丰富与安静。

没有一劳永逸的开始;也没有无法拯救的结束。人生中,你需要把握的是该开始的,要义无反顾地开始;该结束的,就干净利落地结束。

不论担子有多重,每个人都能支持到夜晚的来临,不论工作多么辛苦,每个人都能够做他那一天的工作,每个人都能很甜美很有耐心很可爱很纯洁地活到太阳下山,这就是生命的真谛。

别抱怨,当目标成了遗憾,命运才给你改变自己的机会。往事既已过去,就应该学着笑对眼前。人生一世,如浮云流水,过往是覆水难收的我们有的只是现在。

页页翻过,一页页逝去;今天成了昨天,昨天又成了过去,过去又似针尖上一滴水滴在海里;所于我未来的日子免不了就这样滴在时间的流里,没有声音,也没有了影子了。

前言

       最近在使用广播的时候遇到了这个问题,项目里面使用了极光推送,然后项目里有几个地方都需要写广播接收者去接收,所以我只在一个地方写了,然后其他的地方就是copy过去的,然后就报了这个错误,总的来说,这个错误是自己不细心造成,但是,找问题还是花了我一点时间的,所以也再次做一个记录。错误日志如下:

错误描述

NullPointerException:method 'android.content.BroadcastReceiver.onReceive' on a null object reference

更多如下图所示:
在这里插入图片描述

解决方案

  一看就是报了空指针,但是并没有说明是在哪一行报错的,这就尴尬了,不过凭经验来看,就是调用了空数据,onReceive里面最容易空的,就是context了,但是debug打印了一圈,发现这里面代码并没有问题,于是我就重写了这部分代码,写的过程中才发现了问题,我自定义的类虽然继承了广播接收者,但是,因为注册和实例化是分开的,所以复制代码的时候少复制了一行,下次在遇到这类问题的时候,就自己去检查context和广播接受者是否实例化了。

  所以,最后在写代码的时候,相关的代码最好写在同一个地方或者一个方法内,这样容易在报错的时候方便排查。如下:

//初始化和注册广播
private void initBroadcast(){
        updateAttendanceReceiver = new UpdateAttendanceReceiver();
        registerUpdateAttendanceBroadcast();
       }

结语

  每个人刚开始学习的时候都是小白,这个过程中或多或少的都会看看别人写的博客,过程中也可能会踩过很多坑。遇到问题的时候,我们可以记录下来,不管是对自己还是对其他学习的小伙伴都很有帮助。程序员大多都是很孤独的,写作也可以让自己的孤独“有处安放”,多去表达,多点表达,对于不善言辞的程序员总是有很多好处,博文写作的过程中最重要的是思路清晰有条理,和敲代码最大的不同是,编程有了明确的目标,日复一日必成高手,而写作如果只是为了写而写,往往会失了初心,丢了本真。写作不仅可以提高言语表达能力,更可以培养持续做事情的毅力,最好得是能遇到很多志同道合的朋友。

转载自:https://blog.csdn.net/u014727709/article/details/103731747
欢迎start,欢迎评论,欢迎指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想你依然心痛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值