Android基础之BroadcastReceiver(待完善)

来源:互联网 发布:数据近义词 编辑:程序博客网 时间:2024/05/16 23:58

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消息???