android广播

本文介绍了Android广播BroadcastReceiver的基本概念、工作原理和实现步骤,包括如何定义广播接收器、静态与动态注册的区别,以及详细讲解了普通广播、系统广播、有序广播和本地广播的特点与应用场景。特别强调了有序广播的优先级控制和中断机制,以及本地广播在应用内通信的安全性和效率优势。
摘要由CSDN通过智能技术生成
浅谈广播

广播属于Android四大组件之一,它的主要用于APP内部组件间的通讯,负责监听、接收、分发App内部的广播消息并做响应。我还理解的比较浅显,此篇文章也是借鉴了很多文章后的产物,有错误望指出。

原理分析

在这里插入图片描述

实现步骤(以广播网络状态为例)
  • 定义广播接受器BroadcastReceiver
  • 注册广播接收器
  • 发布广播

1. 定义广播接受器BroadcastReceiver
继承BroadcastReceivre类,重写onReceive()方法

//网络广播接受器
public class NetBroadcastReceiver extends BroadcastReceiver {
   
	private NetEvent netEvent;
	@Override
	public void onReceive(Context context, Intent intent) {
   
		//在这里写上相关的处理代码,一般来说,不要此添加过多的逻辑或者是进行任何的耗时操作
        //因为广播接收器运行在UI线程,不允许开启多线程的,过久的操作就会出现报错
        //因此广播接收器更多的是扮演一种打开程序其他组件的角色,比如创建一条状态栏通知,或者启动某个服务
		if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
   
			int netWrokState = NetUtil.getNetWorkState(context);
			if (netEvent != null)
				netEvent.onNetChange(netWrokState);
		}
	}
}

2. 注册广播接收器
注册有两种方式:静态/动态注册

静态注册
注册方式:在AndroidManifest.xml中通过<receive>标签声明。

<!-- APP首次启动时,系统自动实例化 NetBroadcastReceiver 类,并将其注册到系统中 -->
<receiver 
    //广播接收者器的名字
    android:name=".NetBroadcastReceiver " >
    //用于接收网络状态改变时发出的广播
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值