广播机制(二)笔记

一 .  注册BroadcastReceiver的方法

BroadcastReceiver用于监听被广播的事件(intent)为了达到这个目的,BroadcastReceiver必须进行注册,注册的方法有以下俩种。

1 . 在应用程序代码中进行注册

registerReceiver(receiver,filter)

unregisterReceiver(receiver)//解除broadcastReceiver对象的注册

启动Activity时注册,在Activity不可见以后取消注册。

//生成一个IntentFilter对象

Intentfilter filter = new IntentFilter();

//为IntentFilter添加一个Action

filter.addAction("android.provider.Telephony.SMS_RECEIVED");

//注册broadcastReceiver对象

this.registerReceiver(smsReceiver,filter);

smsReceiver为接收广播的BroadcastReceiver对象

如果一个BroadcastReceive用于更新UI,那么通信会使用这种方法进行注册BroadcastReceive;在Activity启动的时候注册BroadcastReceive,而Activity不可见以后就取消注册。

2 . 在AndroidManifest.xml中进行注册

<receiver android:name=".接收器类名">

<intent-filter>

<action android:name="android.intent.action.EDIT">

</intent-filter>

</receiver>

intent-filter过滤器挑选广播中的Action是否匹配,若匹配则生成该Receiver对象

上述注册特点是:应用程序结束了之后,该BroadcastReceiver同样会接受到广播,一直处于活动状态,有的应用程序需要这一点,有的则不需要,不需要时应该使用另一种注册方法。

二 . Android内置的Broadcast Actions

action中可以有很多类型如ACTION_VIEW\ACTIONO_EDIT\ACTION_MAIN\ACTION_DIAL\ACTION_CAMERA_BUTTON\ACTION_BATTERY_LOW\等等 在帮助文档android:content备注中有broadcastaction表示的常量。

原文地址:https://www.cnblogs.com/Gaojiecai/p/2135621.html