BrocastReceiver(二)
来源:互联网 发布:(综琼瑶)知君用心 编辑:程序博客网 时间:2024/06/14 15:58
此篇讲解BrocastReceiver的详细使用demo
1.在清单文件中注册广播(静态广播)
<!-- 注册广播 -->
<receiver
android:name="com.finddreams.runningman.MyBrocastReceiver"
android:exported="false" >
<intent-filter>
<action android:name="com.finddreams.runningman.brocastreceiver3" />
</intent-filter>
</receiver>
2.java代码中实现广播类
package com.finddreams.runningman;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
/**
* 广播
* */
public class MyBrocastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
String action=arg1.getAction();
Log.d("MyBrocastReceiver", "action----:"+action);
if(RuningManActivity.myAction1.equals(action)){
String date1=arg1.getStringExtra("date1");
String date2=arg1.getStringExtra("date2");
String date3=arg1.getStringExtra("date3");
Log.d("MyBrocastReceiver", "动态广播----广播接收者1111111接收到了广播!!!!!!!");
Log.d("MyBrocastReceiver", "date1----:"+date1);
Log.d("MyBrocastReceiver", "date2----:"+date2);
Log.d("MyBrocastReceiver", "date3----:"+date3);
}else if(RuningManActivity.myAction2.equals(action)){
String date1=arg1.getStringExtra("date1");
String date2=arg1.getStringExtra("date2");
String date3=arg1.getStringExtra("date3");
Log.d("MyBrocastReceiver", "动态广播----广播接收者2222222222接收到了广播!!!!!!!");
Log.d("MyBrocastReceiver", "date1----:"+date1);
Log.d("MyBrocastReceiver", "date2----:"+date2);
Log.d("MyBrocastReceiver", "date3----:"+date3);
}else if(RuningManActivity.myAction3.equals(action)){
String date1=arg1.getStringExtra("date1");
String date2=arg1.getStringExtra("date2");
String date3=arg1.getStringExtra("date3");
Log.d("MyBrocastReceiver", "静态广播----广播接收者333333333接收到了广播!!!!!!!");
Log.d("MyBrocastReceiver", "date1----:"+date1);
Log.d("MyBrocastReceiver", "date2----:"+date2);
Log.d("MyBrocastReceiver", "date3----:"+date3);
}
}
}
3.java代码中注册 发送 注销广播
public static String myAction1="com.finddreams.runningman.brocastreceiver1";
public static String myAction2="com.finddreams.runningman.brocastreceiver2";
public static String myAction3="com.finddreams.runningman.brocastreceiver3";
/**
* 发送广播1
*/
public void showbrodialog(View v){
Intent intent=new Intent();
intent.setAction(myAction1);//设置你这个广播的action,只有和这个action一样的接受者才能接受者才能接收广播
intent.putExtra("date1", "张三");
intent.putExtra("date2", "李四");
intent.putExtra("date3", "王五");
sendBroadcast(intent);//发送广播
}
/**
* 发送广播2
*/
public void showbrodialogs(View v){
Intent intent=new Intent();
intent.setAction(myAction2);//设置你这个广播的action,只有和这个action一样的接受者才能接受者才能接收广播
intent.putExtra("date1", "25");
intent.putExtra("date2", "36");
intent.putExtra("date3", "28");
sendBroadcast(intent);//发送广播
}
/**
* 发送广播3
*/
public void showbrodialogss(View v){
Intent intent=new Intent();
intent.setAction(myAction3);//设置你这个广播的action,只有和这个action一样的接受者才能接受者才能接收广播
intent.putExtra("date1", "男");
intent.putExtra("date2", "女");
intent.putExtra("date3", "男");
sendBroadcast(intent);//发送广播
}
/**
* 注册广播1
* */
public void MyRegister1(){
myBrocastReceiver1=new MyBrocastReceiver();
IntentFilter filter=new IntentFilter();
filter.addAction(myAction1);//只有持有相同的action的接受者才能接收此广播
registerReceiver(myBrocastReceiver1, filter);
}
/**
* 注册广播2
* */
public void MyRegister2(){
myBrocastReceiver2=new MyBrocastReceiver();
IntentFilter filter=new IntentFilter();
filter.addAction(myAction2);//只有持有相同的action的接受者才能接收此广播
registerReceiver(myBrocastReceiver2, filter);
}
/**
* 注销广播
* */
public void UnMyRegister(){
if(null!=myBrocastReceiver1){
unregisterReceiver(myBrocastReceiver1);
Log.d("RuningManActivity", "1111111111注销广播!!!!!");
}
if(null!=myBrocastReceiver2){
unregisterReceiver(myBrocastReceiver2);
Log.d("RuningManActivity", "2222222222注销广播!!!!!");
}
}
4.结果
4.1.发送广播1时
4.2.发送广播2时
4.3.发送广播3时
注意
1.BroadcastReceiver(广播) 是Android四大组件之一
2.和activity一样需要注册
3.有生命周期即onReceive方法执行完成后广播结束
4.不可做耗时操作(10s ANR)
- BrocastReceiver(二)
- BrocastReceiver初阶
- BrocastReceiver(一)
- 利用两个BrocastReceiver来保证同时只有一个实例在运行
- (二)
- (二)
- 二
- 《二》
- 二
- 二
- 二
- 二
- 二
- 二
- 二
- 二
- 二
- 二
- 将一串字符(hello world I am c_player)反转为(c_player am I world hello)
- Linux常用命令大全
- ES6学习——新的语法:Symbol private类属性
- C、C++中的结构体
- mysql多实例
- BrocastReceiver(二)
- Tomcat部署项目,访问的时候不带项目名称
- LB/LVS之KeepAlived总结
- 网络缓冲图片到sd卡
- TLD算法概述(一)
- Spring框架整合CXF WebService实现原理
- java 自制Tomcat Andorid IOS 端 证书
- python学习
- 原生态文件上传