android的广播介绍,在程序中注册广播
来源:互联网 发布:论文账务处理程序优化 编辑:程序博客网 时间:2024/06/04 17:56
利用代码注册 BroadcastReceiver 时有以下步骤:
1)生成一个 BroadcastReceiver 对象;
2)生成一个 IntentFilter 对象;
3)为 IntentFilter 对象添加一个 Action ;
4)利用 IntentFilter 和 BroadcastReceiver 绑定注册一个 BroadcastReceiver 到系统中,当系统广播该Action事件的时候,就出发该BroadcastReceiver。
1 首先定义一个activity
public class BroadcastDemoActivity extends Activity { private Button regButton,unregButton; final static String SMSReceiver = "android.provider.Telephony.SMS_RECEIVED";//接收短信的广播 private MyBroadReceiver myBroadReceiver;//广播接收者 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initView(); }private void initView() {regButton = (Button) this.findViewById(R.id.reg);regButton.setOnClickListener(new RegListener());//这里不能在内部类中注册广播,会报错unregButton = (Button) this.findViewById(R.id.reg);unregButton.setOnClickListener(new RegListener());}private class RegListener implements View.OnClickListener{public void onClick(View v) {switch(v.getId()){case R.id.reg:myBroadReceiver = new MyBroadReceiver();//此对象用于接收广播,IntentFilter filter = new IntentFilter();filter.addAction(SMSReceiver);//注册一个接收短信的广播//将广播接收者注册到系统中BroadcastDemoActivity.this.registerReceiver(myBroadReceiver, filter);break;case R.id.unreg://从系统中解除广播接收者BroadcastDemoActivity.this.unregisterReceiver(myBroadReceiver);break;}}}}
2,定义一个接收广播的类,这里简单处理,只打印一个广播到来的信息。
public class MyBroadReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Log.i("MyBroadReceiver", "sms is comming");}}
3,由于订阅了接收短信的广播,所以要声明接收短信的权限
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cjf.broadcast" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.RECEIVE_SMS"/><!-- 接收短信权限 --> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".BroadcastDemoActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
4,代码完成,点击注册按钮,然后用模拟器发送一条短信。LogCat会打印出短信到来的信息
- android的广播介绍,在程序中注册广播
- android的广播介绍,在manifest .xml中注册广播
- 在Android学习中有关于广播注册的问题
- Android中不能静态注册的广播
- 在Activity中注册广播
- Android广播之注册广播(包括静态广播和动态广播的注册)源码分析
- Android的广播机制注册
- Android广播的注册方式
- mars android开发之一:在AndroidMainfest.xml中注册广播
- mars android开发之二:在代码中注册广播
- Android在Service中注册动态广播接收者
- Android静态注册广播和动态注册广播的区别
- 在Android Manifest中注册DownloadManager下载完成发送的广播
- 我对广播的理解:在manifset文件中注册广播组件
- Android中广播的使用(动态、静态注册的区别,有序无序广播的使用)
- 在服务中注册广播接受者
- 在自定义控件中注册广播
- 关于android中PendingIntent.getBroadcase的注册广播
- 每天学习10句英语-第十二天
- Android-Lint 检查问题列表
- 每天学习10句英语-第十三天
- 数据挖掘与临床疾病诊断
- 每天学习10句英语-第十四天
- android的广播介绍,在程序中注册广播
- Nagios简介
- 设计模式(3) –建造者模式(Builder)
- 每天学习10句英语-第十五天
- 基于apache的nagios安装与配置
- 基于nginx的nagios安装与配置
- 利用nagios监控本地服务器和远端服务器
- Zoj 3633 Alice's present
- AVC_AAC压制