bug修复系列之Can't use FLAG_RECEIVER_BOOT_UPGRADE here

一、前言

博主决定,在接下来的开发工作中,遇到bug麻烦,在解决之后都会写一篇博文来进行总结,虽然琐碎,但是我愿意不厌其烦的记录下来,不为别的,就为了能够使自己有所收获,当然最好也能够帮助后来人迅速的解决类似的问题。

我现在的项目是从离职的同事接手过来的,项目框架和代码细节都没怎么理清,昨天测试的同事发现了一个bug,然后让我进行修复。当时我没有仔细研究bug就跟他说了我的各种“猜测”,现在回想起来让我有些后悔.....在遇到问题的时候先别找各种理由,应该先研究再跟他人讲,要不然就是态度的问题。

还有,就是解决问题的思路,一定要从bug处开始,顺藤摸瓜,并对症下药的把问题一步步的解决了,不要胡乱的猜测,这样只会浪费时间。下面进入正题:


二、bug内容及原因

java.lang.IllegalArgumentException: Can't use FLAG_RECEIVER_BOOT_UPGRADE here
at android.os.Parcel.readException(Parcel.java:1544)
at android.os.Parcel.readException(Parcel.java:1493)
at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:2963)
at android.app.ContextImpl.sendBroadcast(ContextImpl.java:1703)
at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:391)
at com.mozillaonline.providers.downloads.DownloadService$UpdateThread.run(DownloadService.java:289)

出现bug的原因是,在发送广播时不要给Intent设置任何的FLAG_ACTIVITY_相关的flag


三、延伸

(一)Intent 添加FLAG的作用

在Intent中addFlags()的作用是起到控制Activity栈的作用,有点类似于Activity的启动模式,如FLAG_ACTIVITY_SINGLE_TOP相当于加载模式中的singleTop

(二)android:exported="false"的作用

是否允许该组件(如Activity、Service、BroadcastReceiver、ContentProvider)被其它应用程序调用。

(三)long转int:int mInt = (int)mLong;  (够二的偷笑

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值