BroadcastReceiver的使用和两种注册方式之间的区别

转载 2012年03月21日 16:58:12

http://blog.csdn.net/xiang_j2ee/article/details/7261147


在Android手机应用程序中开发中,需要用到BroadcastReceiver来监听广播的消息。在自定义好BroadcastReceiver ,需要对其进行注册,注册有两种方法,一种是在代码当中注册,注册的方法是registerReceiver(receiver,filter)(用Activity的实例来调用),取消注册的方法:unregisterReceiver(receiver),如果一个BroadcastReceiver用于更新UI(User Interface),那么通常会使用这种方法进行注册,在Activity启动的时候进行注册,在Activity不可见后取消注册;另一种就是在 AndroidManifest当中进行注册。

 

下面简单的看一下两种注册方式:

第一种:使用代码进行订阅


    IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");  
    IncomingSMSReceiver receiver = new IncomingSMSReceiver();  
    registerReceiver(receiver, filter);  

第二种:在AndroidManifest.xml文件中的<application>节点里进行订阅:

    <receiver android:name=".IncomingSMSReceiver">  
        <intent-filter>  
             <action android:name="android.provider.Telephony.SMS_RECEIVED"/>  
        </intent-filter>  
    </receiver>  


注册完之后即可以发送广播,使用Context.sendBroadcast()、Context.sendOrderedBroadcast()或者Context.sendStickyBroadcast()来实现,接收端代码:

    public class IncomingSMSReceiver extends BroadcastReceiver {  
           @Override  
           public void onReceive(Context context, Intent intent) {  
                  //todo...接收广播,做自己的业务   }  
    }  
 

以上完成了广播的注册、发送和接收处理的过程,其中包含了注册广播的两种方式,接下来讨论一下两种广播注册方式的区别:

        区别:

        在AndroidManifest中进行注册后,不管改应用程序是否处于活动状态,都会进行监听,比如某个程序时监听 内存 的使用情况的,当在手机上安装好后,不管改应用程序是处于什么状态,都会执行改监听方法中的内容。

        在代码中进行注册后,当应用程序关闭后,就不再进行监听。我们读知道,应用程序是否省电,决定了该应用程序的受欢迎程度,所以,对于那些没必要在程序关闭后仍然进行监听的Receiver,在代码中进行注册,无疑是一个明智的选择。



相关文章推荐

Android中BroadcastReceiver的两种注册方式(静态和动态)详解

今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式。 BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中...

[Android面试题-8] BroadCastReceiver的两种注册方式的异同

在Android手机应用程序中开发中,需要用到BroadcastReceiver来监听广播的消息。在自定义好BroadcastReceiver ,需要对其进行注册,注册有两种方法,一种是在代码当中注册...

BroadcastReceiver的两种注册方式(静态注册和动态注册)

静态注册就是在AndroidManifest.xml文件中定义,注册的广播接收器必须继承BroadReceiver 动态注册就是在程序中使用Context.registerReceiver注册。...

BroadcastReceiver的两种注册方式(静态注册和动态注册)(转)

静态注册就是在AndroidManifest.xml文件中定义,注册的广播接收器必须继承BroadReceiver 动态注册就是在程序中使用Context.registerReceiver注册。 ...

Android 注册广播的两种方式区别

转:http://blog.sina.com.cn/s/blog_8417aea801010ulr.html   之前一直碰到这个问题,都没有证明回答,现在总结如下:     通过在配置文...

Android 编程下两种注册广播方式的区别

常驻型广播 常驻型广播,当你的应用程序关闭了,如果有广播信息来,你写的广播接收器同样的能接收到,它的注册方式就是在你应用程序的AndroidManifast.xml 中进行注册,这种注册方式通常...

Android 编程下两种方式注册广播的区别

常驻型广播 常驻型广播,当你的应用程序关闭了,如果有广播信息来,你写的广播接收器同样的能接收到,它的注册方式就是在你应用程序的AndroidManifast.xml 中进行注册,这种注册方式通常...

Android 注册广播的两种方式区别

通过在配置文件里面注册广播属于常驻型广播,意思就是即便你应用程序结束,一旦有了对应的广播过来,其还是会被激活;而在代码里注册的广播则是非常驻型广播,比如在oncreate方法里面注册一个广播,那么在o...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)