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");
源码便是最好的注释,现在想想,真的还是有道理的。
是不是有时候发觉有时候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");
源码便是最好的注释,现在想想,真的还是有道理的。
相关文章推荐
- Android_studio安装步骤
- Android Studio 快捷键
- Android 防止控件被重复点击,多次提交
- Android 全局异常捕获的完整实践
- android中关于weight宽度的算法
- Android视图优化之Merge,ViewStub基本使用
- 打开系统图库
- 自定义view之圆点progressBar
- [Android] 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
- Android中TextWatcher afterTextChanged无限迭代异常
- android 动画代码实现
- Android的性能模式:救援技巧
- Android 简单三级文字列表
- 管理照相机-控制相机硬件(摘自Android官方培训课程中文版(v0.9.5))
- Android应用中通过Layout_weight属性用ListView实现表格
- Android Studio 1.3.0 以上gradle proxy代理设置异常
- [安卓开发笔记二]android Studio通过jni调用C++代码
- Android之AsyncTask学习
- I.MX6 Android iperf3 porting failed
- 【Android 基础】Animation 动画介绍和实现