赞
踩
Android中的广播主要可以分为两种类型:标准广播和有序广播
标准广播:完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,没有先后顺序可分。
有序广播:同步执行的广播,在广播发出后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。此时的广播接收器是有先后顺序的,优先级高的广播接收器就先收到广播消息,并且前面的广播接收器还可以拦截正在传递的广播,这样后面的广播接收器就无法收到广播消息了。
android内置了很多系统级别的广播,比如手机开机完成后会发出一条广播,电池的电量发生变化会发出一条广播,手机网络变化会发出一条广播。
新建一个类,让它继承自BroadcastReceiver,并重写父类的onReceive()方法,这样当有广播到来时,onReceive()方法就会执行,具体的逻辑可以在这个方法中处理。
注册广播的方式一般有两种,在代码中注册(动态注册)和在AndroidManifest.xml(静态注册)中注册。
动态注册的广播接收器要取消注册才行
public class MainActivity extends AppCompatActivity{
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter = new IntentFilter();
//广播接收器想要监听什么广播,就在这里添加相应的action
//当网络状态发生变化时,系统发出的是一条值为"android.net.conn.CONNECTIVITY_CHANGE"的广播<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。