Android广播注册两者方式

2015-08-15 18:10 评论 0 条

1、动态注册,即在java代码中调用registerReceiver(BroadcastReceiver  receiver,IntentFilter fileter),如下:

  1. /** 
  2.   *重写onReceive方法 
  3.   */  
  4. public class SMSBroadcastReceiver extends BroadcastReceiver{  
  5.   
  6.           public void onReceive(Context context,Intent intent){  
  7.   
  8.           }  
  9. }  
  1. public class SMSActivity extends Activity{  
  2.        public void onCreate(Bundle savedInstanceState){  
  3.                    super.onCreate(savedInstanceState);  
  4.                    setContentView(R.layout.sms_main);  
  5.   
  6. //注册动态广播  
  7. IntentFilter filter=new IntentFilter();  
  8.                   filter.addAction("android.provider.telephony.SMS_RECEIVED");  
  9. SMSBroadcastReceiver  receiver=new SMSBroadcastReceiver();  
  10.                   registerReceiver(receiver,filter);  
  11.   
  12.        }  
  13. }  

2、静态注册,即在AndroidManifest.xml文件中注册,如下:

  1. <receiver>  
  2.   
  3. <intent-filter android:name=".SMSBroadcastReceiver">  
  4.   
  5. <action android:name="android.provider.telephony.SMS_RECEIVED"/>  
  6.   
  7. </intent-filter>  
  8.   
  9. </receiver>  

3、区别:

静态注册广播又叫:常驻型广播,广播不会随应用程序的关闭而停止,只要有广播信息,广播接收器都可以接收得到,它是直接在应用程序的AndroidManifest.xml文件中注册。

动态注册广播又叫:非常驻型广播,应用程序结束了,广播就停止,广播接收者将不会再收到广播信息,在一个Activity的onCreate、onResume中注册,需要在onPause或onDestroy中调用unregisterReceiver(SMSBroadcastReceiver receiver)取消注册,否则会报错。

当前文章价值6.47元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/332.html ,谢谢支持!

资源分享

harmony学习页面(@Entry)生命周期 harmony学习页面(@Entry)生命周
Python使用pymysql封装数据库访问类 Python使用pymysql封装数据库访
Python库tkinter将日志内容在gui界面文本输出示例 Python库tkinter将日志内容在gu
生活杂谈之阿里云免费虚拟主机申请过程详解 生活杂谈之阿里云免费虚拟主机申

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情