欢迎来到天天文库
浏览记录
ID:41331096
大小:668.73 KB
页数:15页
时间:2019-08-22
《1011全局事件——广播(BroadcastReceiver)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、10.1.1全局事件——广播(BroadcastReceiver)广播是AndroidSDK的4大组件中唯一需要被动接收数据的组件,Activity,ContentProvider,Service可以主动调用并返回数据,但是负责接受Broadcast的数据的连接器却永远也不知道什么时候可以接收到广播,所以广播可以被称为全局事件,系统事件。广播机制的图解:BroadcastReceiverDBroadcastReceiverAAndroid事件BroadcastReceiverCBroadcastReceiverB在使用广播时需要在androidmanifest.xml文件中注册,
2、在使用时则根据注册代码中的intent-filter中的anction-name来判断调用哪个广播接收器来处理。现在我们来看一下怎么发送广播:发送广播流程: 创建一类继承自BroadcastReceiver 在androidmanifest.xml文件中注册receiver,注意写明intent-filter中action-name在Main类中创建Intent对象,并指明要传给哪个广播接收器的action-name,最后调用当前对象的sendBroadcast()来发送该intent即广播 广播接收器收到广播后进行处理现在来看具体的业务代码:在广播类中:packagecom.i
3、t.junms;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.util.Log;publicclassSMSBroadcastReceiverextendsBroadcastReceiver{privateStringtag="SMSBroadcastReceiver";@OverridepublicvoidonReceive(Contextcontext,Intentintent){//TODOAut
4、o-generatedmethodstub可以通过intent获取到的action判断是否是要接收的广播Log.d(tag,"广播发送成功");}}在Main类中:packagecom.it.junms;importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;publicclassJunmsBro
5、adcastActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/privateButtonbtnSendBroadcast=null;//privateSMSBroadcastReceiversmsBroadcastReceiver=null;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);btnSendBroadc
6、ast=(Button)findViewById(R.id.btnSendBroadcast);btnSendBroadcast.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstub//smsBroadcastReceiver=newSMSBroadcastReceiver();Intentintent=newIntent("android.provider.Telephony.SMS_RECEIVED");//intent.
7、setAction("android.provider.Telephony.SMS_RECEIVED");JunmsBroadcastActivity.this.sendBroadcast(intent);}});}}在AndroidManifest.xml文件中的注册广播代码:
此文档下载收益归作者所有