BroadcastReceiver是Android四大组件之一,使用前需要在Manifets.xml文件中进行注册
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="zxc.android.learning"> //关于intent-filter部分内容见Android基础之Intent
</intent-filter>
</receiver>
或者在代码中进行动态注册
MyReceiver myReceiver=new MyReceiver();
IntentFilter filter=new IntentFilter();
filter.addAction("zxc.android.learning");
registReceiver(myReceiver,filter);
一般在Activity的onResume(receiver)方法中进行注册registReceiver(myReceiver,filter),在onPause()方法中进行注销unregistReceiver(myReceiver),这样在Activity暂停的时候就不会接受广播了
这里的receiver是继承自BroadcastReceiver的子类的一个实例
在继承BroadcastReceiver的子类中需要重写onReceive()方法,来定义接收到Intent后要进行的操作
class MyReceiver extends BroadcastReceiver{
public void onReceive(Context,Intent intent){
//Receiver在接受到Intent后要执行的操作
//不要在onReceiver()方法中实现任何异步操作
}
}
在需要发送广播的地方发送Broadcast
比如我希望刚才上面写的BroadcastReceiver能接收到我的intent
Intent intent=new Intent();
intent.setAction("zxc.android.learning"); //可以这样写成字符串,但大多数情形是定义一个字符串常量来表示
sendBroadcast(intent);
常用的都有哪些Broadcast消息???