如何创建一个广播?首先创建一个类,让它继承BroadcastReceiver,并重写父类的onReceive()方法就行。当有广播时来时,onReceive()方法就会执行。
具体的逻辑如下代码:
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//监听网络
intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkChangeReceiver = new NetworkChangeReceiver();
registerReceiver(networkChangeReceiver, intentFilter);
}
这上面可能有人不懂了,为什么要添加android.net.conn.CONNECTIVITY_CHANGE?
因为当网络状态发生变化时,系统发出的正是一条值为android.net.conn.CONNECTIVITY_CHANGE的广播,
也就是说我们的广播接收器想要接听什么广播,在这里添加相应的Action就行。
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver(networkChangeReceiver);
}
class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(context, "network change", Toast.LENGTH_SHORT)
.show();
}
}
可以看到我们定义了一个内部类NetworkChangeReceiver,这个类是继承自BriadcastReceiver的,并重写了其父类的onReceive()方法。这样每当网络状态发生变化时onReceive()方法就会得到执行,这里用了Toast提示一段信息。