Intent的另一种用途是发送广播消息,应用程序和Android系统都可以使用Intent发送广播消息,广播消息的内容是可以与应用程序密切相关的数据信息,也可以是Android的系统信息,例如网络连接变化、电池电量变化、接收的短信或系统设置变化等。如果应用程序注册了BroadcastReceiver,则可以接受到指定的广播信息。
使用Intent发送广播消息非常简单,只须创建一个Intent,并调用sendBroadcast()函数就可把Intent携带的信息广播出去。但需要注意的是,在构造Intent时必须定义一个全局唯一的字符串,用来标识其要执行的动作,通常使用应用程序包的名称。如果要在Intent传递额外数据,可以用Intent的putExtra()方法。下面的代码构造了用于广播消息的Intent,并添加了额外的数据,然后调用sendBroadcast()发送广播消息:
String UNIQUE_STRING="edu.hrbeu.BroadcastReceiverDemo";
Intent intent=new Intent(UNIQUE_STRING);
intent.putExtra("key1","value1");
intent.putExtra("key2","value2");
sendBroadcast(intent);
BroadcastReceiver用于监听广播消息,可以在AndroidManifest.xml文件或代码中注册一个BroadcastReceiver,并使用Intent过滤器指定要处理的广播消息。创建BroadcastReceiver须要继承BroadcastReceiver类,并重载onReceive()方法。示例代码如下:
public class