Android广播接收器是android四大组件之一,而广播又分为两种:有序广播和标准广播。
标准广播是一种异步执行的广播,在广播发出后所有接收器都会同步收到该广播,而且过程无法拦截。
有序广播是一种同步执行的广播,在广播发出后同意时刻只有一个广播接收器接收到广播,执行完逻辑才能继续往下传递,所以广播是有先后顺序的。
我们可以通过接收系统广播来监视系统状态,从而完成一些列活动,下面是动态监听网络变化的例子,应用场景是网络下载网络切换时的提示,或者QQ断网时的提醒
下面是模仿QQ断网提示的效果(没有基于QQ demo制作,所以仅仅是简单的显示隐藏和跳转)
1.效果图
2.达到的效果是:当无线网络或者移动数据接入的时候,黄色提示条消失,对网络种类进行提示,当断开网络时,黄色提示条显示,点击提示条进入设置界面。
3.java代码
首先变量定义和实例的获取就不写出来了,下面再onCreate方法里新建 netset()方法,内容如下
private void netset() {
intentfilter=new IntentFilter();
intentfilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkchange=new NetworkChange();
registerReceiver(networkchange,intentfilter);
}
用来监听,其中NetworkChange方法是我们新创建的,所以下面给出他的声明
此方法继承自BroadcastReceiver,重写其中的方法
class NetworkChange extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Netw