静态注册广播:
先创建一个接收器
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String msg = intent.getStringExtra("msg");
System.out.println("msg="+msg);
}
}
因为广播要隐式启动,所以需要在清单文件注册广播的时候 添加匹配
action :可以自定义一个匹配规则,也可以使用系统规则,比如关开机发送广播
category
<receiver android:name="com.example.brodcast.MyReceiver">
<intent-filter >
<action android:name="android.intent.action.MY_BROADCAST"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>
然后就可发送广播了
Intent itIntent = new Intent("android.intent.action.MY_BROADCAST");
itIntent.putExtra("mss", "哇哈哈");
sendBroadcast(itIntent);
动态注册
前面,我们说了静态注册,什么叫静态注册呢,就是利用XML来注册。
相反,利用代码来注册的就叫动态注册。
静态注册和动态注册是有区别的,主要体现在接收上。
静态注册的程序,无论该程序是否启动,都会当广播到来时接收,并处理。而动态注册的程序只有在程序运行时才会收到广播消息,程序不运行了,它就收不到了。
动态注册与静态注册 代码的不懂之处在于, 动态注册需要在代码中注册
MyReceiver myReceiver = new MyReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.MY_BROADCAST");
registerReceiver(myReceiver, intentFilter);