您的位置:首页 > 移动开发 > Android开发

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

2016-04-05 16:50 483 查看
原文地址:http://blog.csdn.net/huangxiaohu_coder/article/details/7106014

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

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

1.mediaScanner相关的:

[java] view
plain copy

print?

IntentFilter intentFilter =

new IntentFilter(Intent.ACTION_MEDIA_MOUNTED);

intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);

intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);

intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);

intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);

intentFilter.addDataScheme("file");

2.package相关的:

[java] view
plain copy

print?

filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);

filter.addAction(Intent.ACTION_PACKAGE_REMOVED);

filter.addAction(Intent.ACTION_PACKAGE_CHANGED);

filter.addDataScheme("package");

3.sms相关的:

[java] view
plain copy

print?

intentFilter.addAction(Intents.DATA_SMS_RECEIVED_ACTION);

intentFilter.addDataScheme("sms");

源码便是最好的注释,现在想想,真的还是有道理的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: