android学习:broadcast receiver的使用
2015-09-21 21:32
483 查看
broadcast receiver顾名思义,就是广播收音机,用于应用广播,即所有应用都可以收到的信息。
一、现在mainactivity同一目录下新建一个扩展自BroadcastReceiver的MyBC类,重写其中的onReceiver()方法,用于在接收到广播时做出反应:
public class MyBC extends BroadcastReceiver {
//声明一个ACTION用于接收广播
public static final String ACTION = "cn.eoe.usingbc.intent.action.MyBC";
//接收到广播时通过Intent对象获取接收的数据
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("onReceive,data="+intent.getStringExtra("txt"));
}
}
二、在mainactivity中用sendBroadcast()方法发送广播,用registerReceiver()方法注册MyBC(BroadcastReceiver)对象,注册之后就可以接收广播了,不接受的时候用unregister()方法取消注册即可。
//先声明三个按钮
private Button btnSendBroadcast,btnRegBCR,btnUnregBCR;
//实例一个MyBC对象
private final MyBC mybc = new MyBC();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第一个发送广播,用到了Intent对象
btnSendBroadcast = (Button) findViewById(R.id.btnSendBroadcast);
btnSendBroadcast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Intent i = new Intent(MainActivity.this, MyBC.class);
Intent i = new Intent(MyBC.ACTION);
i.putExtra("txt", "Hello eoe");
sendBroadcast(i);
}
});
//第二个通过registerReceiver()方法,注册receiver,用来接收广播,第一个参数是MyBC对象,第二个参数是MyBC中按特定格式写的ACTION,相当于接收的地址。
btnRegBCR = (Button) findViewById(R.id.btnRegBCR);
btnRegBCR.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerReceiver(mybc, new IntentFilter(MyBC.ACTION));
}
});
//第三个按钮用来取消receiver的注册
btnUnregBCR=(Button) findViewById(R.id.btnUnregBCR);
btnUnregBCR.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
unregisterReceiver(mybc);
}
});
}
一、现在mainactivity同一目录下新建一个扩展自BroadcastReceiver的MyBC类,重写其中的onReceiver()方法,用于在接收到广播时做出反应:
public class MyBC extends BroadcastReceiver {
//声明一个ACTION用于接收广播
public static final String ACTION = "cn.eoe.usingbc.intent.action.MyBC";
//接收到广播时通过Intent对象获取接收的数据
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("onReceive,data="+intent.getStringExtra("txt"));
}
}
二、在mainactivity中用sendBroadcast()方法发送广播,用registerReceiver()方法注册MyBC(BroadcastReceiver)对象,注册之后就可以接收广播了,不接受的时候用unregister()方法取消注册即可。
//先声明三个按钮
private Button btnSendBroadcast,btnRegBCR,btnUnregBCR;
//实例一个MyBC对象
private final MyBC mybc = new MyBC();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第一个发送广播,用到了Intent对象
btnSendBroadcast = (Button) findViewById(R.id.btnSendBroadcast);
btnSendBroadcast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Intent i = new Intent(MainActivity.this, MyBC.class);
Intent i = new Intent(MyBC.ACTION);
i.putExtra("txt", "Hello eoe");
sendBroadcast(i);
}
});
//第二个通过registerReceiver()方法,注册receiver,用来接收广播,第一个参数是MyBC对象,第二个参数是MyBC中按特定格式写的ACTION,相当于接收的地址。
btnRegBCR = (Button) findViewById(R.id.btnRegBCR);
btnRegBCR.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerReceiver(mybc, new IntentFilter(MyBC.ACTION));
}
});
//第三个按钮用来取消receiver的注册
btnUnregBCR=(Button) findViewById(R.id.btnUnregBCR);
btnUnregBCR.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
unregisterReceiver(mybc);
}
});
}
相关文章推荐
- Android 各国语言包字符串缩写
- Android学习之Bitmap个版本详解
- Android 开发第一弹:倒计时
- 使用Zxing实现Android二维码扫描
- android基础入门
- Android4.2.2的Stagefright维护编解码器的数据流
- Android Support v4、v7、v13的区别
- android有序广播和无序广播的区别
- Android AlertDialog对话框 学习笔记
- Android Studio 导出 APK
- Android与服务器交互
- Android Toast 学习笔记
- Android学习之自定义控件
- Android学习进阶路线导航线路(Android源码分享) ...
- Android 之Adapter
- Android Studio导出的密钥签名市场认证安装包
- android 读取sd卡中的图片
- android studio 导入高德地图 INSTALL_FAILED_CPU_ABI_INCOMPATIBLE错误
- Android内存管理之SoftReference
- Android(java)学习笔记261:JNI之编写jni程序适配所有处理器型号