• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Later
博客园    首页    新随笔    联系   管理    订阅  订阅

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

posted @ 2015-08-03 21:39  Later*  阅读(131)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3