• 发送广播

/***小喇叭发出数据已经跟新的广播*/privatevoidbroadcastCircleViewUpdate(){//创建IntentIntenttestIntent=newIntent();//设置动作属性testIntent.setAction(Action.ACTION_CIRCLE_MSG_UPDATE);//设置消息内容testIntent.putExtra("MSG","Test!!!!");//发送广播getBaseContext().sendBroadcast(testIntent);}

  • 接受广播

【1】先写一个广播监听对象: receiver

privateBroadcastReceiverreceiver=newBroadcastReceiver(){@OverridepublicvoidonReceive(Contextcontext,Intentintent){//讲广播中收到的intent的属性取出来Stringaction=intent.getAction();//使用if-elseif进行哦匹配;注意不要使用switchif(action.equals(BroadCastAction.NEW_POST_ACTION)){//添加需要执行的动作......}elseif(action.equals(BroadCastAction.NEW_POST_SUCCESS_ACTION)){//添加需要执行的动作......}elseif(action.equals(BroadCastAction.NEW_POST_FAIL_ACTION)){//添加需要执行的动作......}elseif(action.equals(Action.ACTION_CIRCLE_MSG_UPDATE)){//添加需要执行的动作Stringmsg=intent.getStringExtra("MSG");......}elseif(action.equals(Action.ACTION_CIRCLE_HOME_UPDATE)){//添加需要执行的动作......}elseif(action.equals(Action.ACTION_CIRCLE_PERSONAL_UPDATE)){//添加需要执行的动作......}}};


【2】集中注册所有的监听

/***集中注册监听*/privatevoidregistRecivers(){IntentFilterfilter=newIntentFilter();filter.addAction(BroadCastAction.NEW_POST_ACTION);filter.addAction(BroadCastAction.NEW_POST_SUCCESS_ACTION);filter.addAction(BroadCastAction.NEW_POST_FAIL_ACTION);filter.addAction(Action.ACTION_CIRCLE_MSG_UPDATE);filter.addAction(Action.ACTION_CIRCLE_HOME_UPDATE);filter.addAction(Action.ACTION_CIRCLE_PERSONAL_UPDATE);//注册走起:参数1为receiver,参数2为intent过滤器registerReceiver(receiver,filter);}


【3】广播的注册与卸载

protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_firend_circle);......//在Activity中onCreate()中集中注册registRecivers();}@OverrideprotectedvoidonDestroy(){super.onDestroy();//注意一定要卸载,不然运行会报错unregisterReceiver(receiver);}


好东西总是在最后!!!

BroadcastReciver需要能匹配的intent,共有2种方式

【1】使用代码进行制定,如下

privatevoidregistRecivers(){IntentFilterfilter=newIntentFilter();filter.addAction(BroadCastAction.NEW_POST_ACTION);filter.addAction(BroadCastAction.NEW_POST_SUCCESS_ACTION);filter.addAction(BroadCastAction.NEW_POST_FAIL_ACTION);filter.addAction(Action.ACTION_CIRCLE_MSG_UPDATE);filter.addAction(Action.ACTION_CIRCLE_HOME_UPDATE);filter.addAction(Action.ACTION_CIRCLE_PERSONAL_UPDATE);//注册走起:参数1为receiver,参数2为intent过滤器registerReceiver(receiver,filter);}

【2】在AndroidManifest.xml文件中进行配置

<receiverandroid:name="com.zte.moa.receiver.SipBroadcastReceiver"><intent-filter><actionandroid:name="com.zte.moa.call_action.org.doubango.ngn.services.impl.NgnHttpClientService"/></intent-filter></receiver>

这里有个坑!!!用sipBroadcastReceiver.java来举个例子

使用方式【2】的话是有条件的:sipBroadcastReceiver.java 必须存在这个类

一定一定!!!!不能在Activity中写成内部类sipBroadcastReceiver,这样会报错!!!

网上看到已经有哥么掉坑里去过了:

http://www.verydemo.com/demo_c131_i26767.html


更多相关文章

  1. Android Activity或者Fragment 向Adapter实时传递参数
  2. Android中的Http通信(三)之get、post传递参数到服务器
  3. Android Activity之间跳转出现短暂黑屏的处理方法和intent.setFl
  4. 解决eclipse中android添加重载函数时参数为arg0,arg1的问题
  5. 【Android 内存优化】Bitmap 图像尺寸缩小 ( 设置 Options 参数

随机推荐

  1. android 浏览器 打开本地html文件的方法
  2. Android应用程序开发以及背后的设计思想
  3. Android(安卓)-- 自定义跑马灯
  4. Android进程通信(IPC)之AIDL对象传递
  5. React Native运行问题:Warning: License f
  6. Android(安卓)Framework中的Application
  7. Android之AIDL(进程间通信)
  8. Android应用程序开发以及背后的设计思想
  9. 一步步实现 仿制Android(安卓)LOL多玩盒
  10. 一种基于Android智能手机的远程视频监控