1 为什么需要广播接收者?
Android内部已经定义好了电台,即定义了一些广播事件,比如拨打电话、接收短信、屏幕锁、电池电量的监听等等,广播接收者的任务就是接收这些广播,并由开发者们将结果展示给用户。
2 步骤
定义广播接收者要继承BroadcastReceiver,其中会自动出行 onReceiver()的方法,(注意广播接收者接收的不是Context),在此方法中,如果是在清单文件中注册的广播接收者一般情况用 getResulData()的方法接收数据,还有一种是用Intent 的
getStringExtra()方法,注意这点。
特殊的广播接收者:屏幕锁,电池电量等。 这类广播接收者只能在代码中动态注册,在清单文件静态注册无效。
动态注册的一点代码:
screenReceiver=new ScreenReceiver(); IntentFilter filter=new IntentFilter(); filter.addAction("android.intent.action.SCREEN_OFF"); filter.addAction("android.intent.action.SCREEN_ON"); //注册特殊的广播接收者 registerReceiver(screenReceiver, filter);
有序广播:一级一级的向下传递,有序广播有一个“钦差大臣”可以不用再清单文件注册,接受广播的各个级都是修改数据的,由“钦差大臣”最后判断最后一级能够收到广播信息。
无序广播:只管发
广播接收者的事件类型:
android.intent.action.NEW_OUTGOING_CALL
android.provider.Telephony.SMS_RECEIVED
android.intent.action.SCREEN_ON
android.intent.action.SCREEN_OFF
android.intent.action.PACKAGE_INSTALL //这个据说是googl大神预留的东东,现在还没有用
android.intent.action.PACKAGE_ADDED //安装apk的事件是这个
android.intent.action.PACKAGE_REMOVED
内容是我自己总结的,仅供参考,如有不足请大家告诉我声,谢谢啦!我会改正并补充