您的位置:首页 > 移动开发 > Android开发

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);
}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: