欢迎来到天天文库
浏览记录
ID:21285752
大小:1.33 MB
页数:28页
时间:2018-10-20
《第6章android广播接收器(broadcastreceiver)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章Android广播接收器(BroadcastReceiver)网络资源:http://www.xs360.cn/bookQQ群:489059718(Android编程-清华版)287966120(公共版)QQ号:1281147324主要内容6.1BroadcastReceiver介绍广播是一种广泛运用在应用程序之间传输信息的机制,而BroadcastReceiver是对发送出来的广播进行过滤接收并响应的一类组件。BroadcastReceiver本质上是一种全局监听器,用于监听系统全局的广播消息,因此它可以非常方便地实现系统中不同组件之间的通信。Bro
2、adcastReceiver用于接收指定的广播,广播的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcat()来实现的。通常一个广播可以被订阅了该Intent的多个广播接收者所接收,如同一个广播台,可以被多位听众收听一样。6.1BroadcastReceiver介绍BroadcastReceiver自身并不实现图形用户界面,但是当它收到某个消息后,可以启动Activity作为响应,或者通过NotificationManager提醒用户,或者启动Service等等。启动BroadcastReceiv
3、er通常需要以下两步:1、创建Intent,指定BroadcastReceiver的特征;2、调用Context的sendBroadcast()(发送普通广播)或sendOrderedBroadcast()(发送有序广播)方法来发送广播,触发指定的BroadcastReceiver。当应用程序发出一个广播之后,所有匹配该Intent的BroadcastReceiver都有可能被启动。6.1BroadcastReceiver介绍开发自己的BroadcastReceiver与开发其他组件一样,只需要继承Android中的BroadcastReceiver基类,然后
4、实现里面的相关方法即可。publicclassMyBroadcastReceiverextendsBroadcastReceiver{publicvoidonReceive(Contextcontext,Intentintent){}}在onReceive()方法中,接收了一个Intent的参数,通过它可以获取广播所携带的数据。6.1BroadcastReceiver介绍创建完广播接收者后,并不能马上使用,还必须为它注册一个指定的广播,就如同我们有了收音机后,还必须选择收听哪个频道一样。在Android中为BroadcastReceiver注册广播有两种方式:
5、静态注册和动态注册。静态注册:是指在AndroidManifest.xml文件中进行注册。6.1BroadcastReceiver介绍MyBroadcastReceivermyBroadcastReceiver=newMyBroadcastRece
6、iver();IntentFilterfilter=newIntentFilter("iet.jxufe.cn.android.myBroadcastReceiver");registerReceiver(myBroadcastReceiver,filter);动态注册:需要在代码中动态的指定广播地址并注册,通常是在Activity或Service中调用ContextWrapper的registerReceiver(BroadcastReceiverreceiver,IntentFilterfilter)方法进行注册。6.1BroadcastReceiver介
7、绍注册完成后,即可接收相应的广播消息。一旦广播(Broadcast)事件发生后,系统就会创建对应的BroadcastReceiver实例,并自动触发它的onReceive()方法,onReceive()方法执行完后,BroadcastReceiver的实例就会被销毁。如果BroadcastReceiver的onReceive()方法不能在10秒内执行完成,Android会认为该程序无响应。所以不要在广播接收者的onReceive()方法里执行一些耗时的操作,否则会弹出ANR(ApplicationNoResponse)对话框。注意如果确实需要根据广播来完成一项
8、比较耗时的操作,则可以考虑通过Inte
此文档下载收益归作者所有