android广播:
每一个应用程序都可以对自己感兴趣的广播进行注册,这样就只能收到自己关心的广播,这些广播可能来自于系统,也可能来自其他应用程序(来短信回产生广播,wifi变化会产生广播...)
要接收广播就必须引入一个对象:广播接受者,它是专门负责接收android广播的。定义一个广播接收者,需要一个类继承自BroadcastReceiver类
每一个应用程序都可以对自己感兴趣的广播进行注册,这样就只能收到自己关心的广播,这些广播可能来自于系统,也可能来自其他应用程序(来短信回产生广播,wifi变化会产生广播...)
要接收广播就必须引入一个对象:广播接受者,它是专门负责接收android广播的。定义一个广播接收者,需要一个类继承自BroadcastReceiver类
public class myBroadcastReceiver extends BroadcastReceiver { @override public void onReceive()}
在onReceive()中不能执行异步操作,不能执行耗时操作,同时它是被主线程执行的
广播接收者必须注册后才能正常使用(四大组件都要注册)可以在AndroidManifest中注册,BroadcastReceiver和Activity都属于四大组件,因此Receiver标签和Activity是同一级别
动态注册:
静态和动态注册的区别:
静态:只要安装了APP广播接收者BroadcastReceiver就处于工作状态。
动态:需要APP运行起来广播接收者BroadcastReceiver才处于工作状态。
发送广播:
广播使用Intent来传递信息,因此自定义广播也需要将action增加到intent
Intent _intent=new Intent();
_intent.setAction(MY_ACTION)
Context类提供一个方法可以发送广播
sendBroadcast(_intent)
有序广播:
abortBroadcast() //表示丢弃广播,则后面的有序广播接收器接收不到此广播了。
priority//属性,Intent-filter的属性,表示优先级,值越大表示优先级越高。
无序广播:
本地广播: