android学习:broadcast receiver的使用

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);
			}
		});
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值