Android的BroadcastReciver收不到Broadcast(系统广播)的原因之一

原文地址:http://blog.csdn.net/huangxiaohu_coder/article/details/7106014   


 是不是有时候发觉有时候Android的broadcastReciver重写正确,IntentFilter定义正确,添加Action正确,。。可能正确,注册IntentFileter也是正确,正确,正确,都是正确,但依然收不到想要收到的broadcastReciver,或许你只是忘记addDataScheme这一点点,试一试,说不定你就能收到迟来的broadcast。至于为什么要添加这个,请参看这篇文章,讲得还是很清楚和很详细的哦,地址:http://blog.csdn.net/silenceburn/article/details/6083375

    下面是我从Android源码收集的几段addDataScheme:

    1.mediaScanner相关的:

[java]  view plain  copy
 print ?
  1. IntentFilter intentFilter =  
  2.         new IntentFilter(Intent.ACTION_MEDIA_MOUNTED);  
  3. intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);  
  4. intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);  
  5. intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);  
  6. intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);  
  7. intentFilter.addDataScheme("file");  

    2.package相关的:

[java]  view plain  copy
 print ?
  1. filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);  
  2. filter.addAction(Intent.ACTION_PACKAGE_REMOVED);  
  3. filter.addAction(Intent.ACTION_PACKAGE_CHANGED);  
  4. filter.addDataScheme("package");  

    3.sms相关的:

[java]  view plain  copy
 print ?
  1. intentFilter.addAction(Intents.DATA_SMS_RECEIVED_ACTION);  
  2. intentFilter.addDataScheme("sms");  

    源码便是最好的注释,现在想想,真的还是有道理的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值