Android广播其实和我们生活中的广播类似 笼统的来说就是传播数据。
1.实现了不同应用程序之间的数据传输和共享(比如通过获取短信,电话做到拦截功能)
2.起到了一个通知的作用,比如在service中要通知主程序,更新主程序的UI等。
实现广播其实很简单
1.既然是广播一定要有发送方和接受方
对于发送方来说,我们需要一个桥梁(Intent)
Intent intent = new Intent(); //Itent就是我们要发送的内容 intent.putExtra("data", "this is data from broadcast "+Calendar.getInstance().get(Calendar.SECOND)); intent.setAction(flag); //设置你这个广播的action,只有和这个action一样的接受者才能接受者才能接收广播 sendBroadcast(intent); //发送广播作为接收方,需要对广播进行注册(动态和静态)1.先定义一个接受类public class ReceiveBroadCast extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { //得到广播中得到的数据输出到控制台 String message = intent.getStringExtra("data"); Log.i("test",message); } }1.1-动态广播(不需要在应用的配置文件中注册,直接使用java代码进行注册)在页面启动的时候注册(OnResume) receiveBroadCast = new ReceiveBroadCast(); IntentFilter filter = new IntentFilter(); filter.addAction(flag); //只有持有相同的action的接受者才能接收广播 registerReceiver(receiveBroadCast, filter);首先我们实现了一个ReceiveBroadCast 类,它继承了BroadcastReceiver并实现了其中的onReceive方法,这样当这个广播被接收的时候就会执行这个方法。注意我们在注册广播的时候使用了filter.addAction方法添加了一个过滤器。如果没有这一句,就相当于广播电台没有告诉咱们收音机用户接收的频率,就不好收听这个广播了。注意!动态广播需要对广播进行注销 unregisterReceiver(flag); //注销相对应的Action那么一个动态的广播就简单的实现了。1.2-静态广播(通过配置文件注册)<receiver android:name="com.qlf.broadCast.broadCastReceiveByxml"> <intent-filter> <action android:name="com.qlf.broadCastFlag"> </action> </intent-filter></receiver>receiver中的android:name就是我们在程序中的那个接收广播的类。下面的intent-filter和我们讲到的功能类似,而这个action就是上面的那个flag除了使用我们自己发送广播,android也内置了许多广播
分享一个Android系统广播大全http://blog.csdn.net/u013290075/article/details/51115648
新闻热点
疑难解答