Android四大套件BroadCastReceiver

 概述:BroadcastReceiver用于接收并处理广播通知(broadcastannouncements)。

              多数的广播是系统发起的,如地域变换、电量不足、来电来信等。程序也可以播放一个广播。程序可以有任意数量的 broadcast receivers来 响应它觉得重要的通知。broadcast receiver可以通过多种方式通知用户:启动activity、使用 NotificationManager、开启背景灯、振动设备、播放声音等,最典型的是在状态栏显示一个图标,这样用户就可以点它打开看通知内容。通常 我们的某个应用或系统本身在某些事件(电池电量不足、来电来短信)来临时会广播一个Intent出去,我们可以利用注册一个 Broadcast Receiver来监听到这些Intent并获取Intent中的数据。

       注册广播的几种方以及这些方式有何优缺点?        

            首先写一个类要继承BroadcastReceiver

            第一种:在清单文件中声明,添加

                  <receive android:name=".IncomingSMSReceiver " >

                  <intent-filter>

                       <action android:name="android.provider.Telephony.SMS_RECEIVED")

                  <intent-filter>

                  <receiver>   

            第二种使用代码进行注册如:

                  IntentFilter filter =  new

                  IntentFilter("android.provider.Telephony.SMS_RECEIVED");

                  IncomingSMSReceiver receiver = new IncomgSMSReceiver();

                  registerReceiver(receiver.filter);

            两种注册类型的区别是:

                  1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期。

                  2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。

原文地址:https://www.cnblogs.com/lwxalxy/p/4700489.html