Android开发笔记之《广播事件处理学习》

本文介绍了Android中的广播机制,包括如何创建和接收广播的基本步骤。详细解释了通过Intent启动广播的方法,以及通过继承BroadcastReceiver类并重写onReceive()方法来响应广播事件的过程。此外还列举了Android提供的标准系统广播事件及其含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Broadcast Receiver和其他时间处理机制类似,只不过事件处理机制是程序组件级别的,广播事件处理机制是系统级别的。

我们通过Intent来启动一个广播事件。

通过sendBroadcast()方法发送广播消息,通过继承BroadcastReceiver类,重载onReceive()方法来响应事件。

Android中定义了很多标准的Broadcast Action来响应系统广播事件,我们也可以自己定义广播事件。

以下是标准的系统广播事件:

	常量名称				常量值					   意义
ACTION_BOOT_COMPLETED		android.intent.action.BOOT_COMPLETED			系统启动完成
ACTION_TIME_CHANGED		android.intent.action.ACTION_TIME_CHANGED		事件改变
ACTION_DATE_CHANGED		android.intent.action.ACTION_DATE_CHANGED		日期改变
ACTION_TIMEZONE_CHANGED		android.intent.action.ACTION_TIMEZONE_CHANGED		时区改变
ACTION_BATTERY_LOW		android.intent.action.ACTION_BATTERY_LOW		电量低
ACTION_MEDIA_EJECT		android.intent.action.ACTION_MEDIA_EJECT		插入或拔出外部媒体
ACTION_MEDIA_BUTTON		android.intent.action.ACTION_MEDIA_BUTTON		按下媒体按钮
ACTION_PACKAGE_ADDED		android.intent.action.ACTION_PACKAGE_ADDED		添加包
ACTION_PACKAGE_REMOVED		android.intent.action.ACTION_PACKAGE_REMOVED		删除包

Broadcast Receiver组件并没有提供可视化界面来显示广播信息

Android提供了Notification和NotificationManager来实现可视化的信息显示

通过使用他们,我们可以显示广播信息的内容、图标以及振动等信息


首先我们来说一下如何创建和接收广播,和Activity,Service一样,需要借助intent,调用sendBroadcast()来发送广播

另外,要写一个类继承BroadcastReceiver类,并重写onReceive()方法。

注意:onReceive()方法最多只能处理几秒钟的东西,如果要处理较长时间的操作(文件上传、下载等),就要用其他方法了

创建广播:

private OnClickListener listener = new OnClickListener()
{
	private String SEND = "SEND_BROADCAST";
	@Override
	public void onClick(View v)
	{
		Intent intent = new Intent();   //创建intent
		intent.setAction(SEND);    //设置ACTION,ACTION在AndroidManifest.xml中设置
		sendBroadcast(intent);    //发送广播
	}
};
广播接收处理:

private static final String TAG = "FirstBroadcast";
@Override
public void onReceive(Context context, Intent intent)   //继承BroadcastReceiver重写的onReceive方法
{
	Log.i(TAG, "Broadcast Receive");
}
上面的是静态绑定注册广播处理方法,也就是在AndroidManifest.xml中定义好ACTION,在代码中setAction,那么启动软件的时候就自动绑定注册了

还有动态绑定方法,调用registerReceiver方法启动绑定注册,调用unregisterReceiver()解除绑定注册

绑定广播演示代码:

SecondBroadcast sbBroadcast = new SecondBroadcast();      //要新建一个BroadcastReceiver类或子类对象用于绑定
IntentFilter filter = new IntentFilter(); //注意这里用的是IntentFilter
filter.addAction(FIRST); //为绑定添加ACTIONregisterReceiver(sbBroadcast, filter); //执行绑定注册广播

unregisterReceiver(sbBroadcast);    //执行完代码后解除绑定注册,主要操作对象同一性

绑定和解除绑定时候注意操作的要是同一个对象,而且绑定注册方式不用在AndroidManifest.xml中声明






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值