Android面试,BroadCastReceiver的两种注册方式的异同

简介:

在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,在代码中进行注册,无疑是一个明智的选择。




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3909619.html,如需转载请自行联系原作者

相关文章
|
3月前
|
设计模式 Android开发
[Android 四大组件] --- BroadcastReceiver
[Android 四大组件] --- BroadcastReceiver
35 0
|
5月前
|
XML Java Android开发
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
169 0
|
8月前
|
XML Java Android开发
Android面试官最喜欢问15道面试题
Android面试官最喜欢问15道面试题
104 0
|
4天前
|
Java API 调度
大厂高频面试题:ReentrantLock 与 synchronized异同点对比
大厂高频面试题:ReentrantLock 与 synchronized异同点对比
13 0
|
1月前
|
存储 算法 Java
Android面试题大全
Android面试题大全
15 1
|
1月前
|
XML Android开发 数据格式
Android注册登录页面2
Android注册登录页面
30 2
|
1月前
|
Java Android开发 数据安全/隐私保护
Android注册登录页面1
Android注册登录页面
11 1
|
2月前
|
存储 安全 Java
Android 面试题及答案整理,最新面试题
Android 面试题及答案整理,最新面试题
93 2
|
7月前
|
存储 Java
【面试题精讲】比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
【面试题精讲】比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
|
5月前
|
Android开发 Kotlin
android开发,使用kotlin学习BroadcastReceiver
android开发,使用kotlin学习BroadcastReceiver
87 0