Android Broadcast Receiver 简单例子
Android BroadcastReceiver
(学习mars老师的视频)
注册的方式
有两种:
一个是在AndroidManifest.xml中声明:
<receiver android:name=".Test_Receiver" > <intent-filter> <action android:name="android.intent.action.sss" /> </intent-filter> </receiver> |
类文件里面的代码:
Intent intent = new Intent(); intent.setAction("android.intent.action.sss"); Test_BCActivity.this.sendBroadcast(intent); |
另一个是代码注册:
绑定receiver
publicstaticfinal String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED"; // 生成一个receiver对象 receiver = new Test_Receiver(); // 生成一个filter对象 IntentFilter intentFilter = new IntentFilter(); // 为filter添加一个action intentFilter.addAction(SMS_RECEIVED_ACTION); Test_BCActivity.this.registerReceiver(receiver, intentFilter); |
解除绑定receiver
Test_BCActivity.this.unregisterReceiver(receiver); |
两者的主要区别是,xml文件中注册的广播机制,在应用程序关闭之后,依然运行。一直运行。通过代码注册的广播是在应用程序关闭之后是关闭的,及时生效。
关于receiver类的代码
publicclass Test_Receiver extends BroadcastReceiver { public Test_Receiver() { Log.d("Test_Receiver", "构造函数"); } @Override publicvoid onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.d("Test_Receiver", "OnReceive"); } } |
更多相关文章
- 如何在eclipse中查看Android各版本源代码
- Android 一键清理内存,缓存,文件代码
- android 怎样通过暗码启动应用程序
- Android纯代码写布局
- 第一行代码-9.6 服务的最佳实践--后台执行的定时任务