android四大组件BroadCasterReceiver基础

本文深入探讨了Android系统中的广播接收器机制,包括两种注册方式:通过AndroidManifest.xml文件和在应用程序中进行动态注册。并通过实例展示了如何创建和使用BroadcastReceiver类,以及如何绑定、解除绑定和发送特定地址的消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Broadcast receiver 广播接收器,用于处理来自于Android系统的消息事件。

作为一个消息接受者,可以接收到特定地址的广播信息。

广播机制:




BroadCastReceiver 有两种注册方式

1 Androidmanifest.xml 文件注册BroadCastReceiver,进行注册时,即使程序已经关闭,也会接收到广播信息。

<receiver android:name=".BroadcastReceiverText">  
            <intent-filter>                
                <action  android:name="android.intent.action.MY_BROADCAST"/>                
            </intent-filter>            
        </receiver>


2 在应用程序中进行动态注册;

在应用程序中

注册BroadcastReceiver : registerReceiver(receiver,filter)

取消注册BroadcastReceiver : unregisterReceiver(receiver);


My_BroadCaster broadcaster =new My_BroadCaster();  //建立一个广播监听类对象
				IntentFilter filter =  new IntentFilter();		// 建立一个过滤器		
				filter.addAction("android.intent.action.MY_BROADCAST"); // 给过滤器添加地址	可以自己定义			
				registerReceiver(broadcaster, filter);  // 将过滤器绑定到监听对象上
My_BroadCaster是一个继承了的BroadcastReceiver的类。

下面是一个注册BroadCaster的实例

BroadcastRecevier类:

package com.example.broadcast02;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class My_BroadCaster extends BroadcastReceiver {

	
	private static final String TAG = "MyReceiver";
	@Override
	public void onReceive(Context arg0, Intent intent) {
		
		
		System.out.println("My_BroadCaster  ----> onReceive");
		String msg = intent.getStringExtra("msg"); 
		Log.i(TAG, msg);
	}

}

主线程activity中用三个按钮来实现绑定,解除绑定,和特定地址发送消息的功能

package com.example.broadcast02;

import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Broadcast02 extends Activity {

	
	private Button ButtonBound;
	private Button Buttonexit;
	private Button ButtonSendDate;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_broadcast02);
		ButtonBound = (Button)findViewById(R.id.button1);
		Buttonexit = (Button)findViewById(R.id.button2);
		ButtonSendDate = (Button)findViewById(R.id.button3);
		ButtonBound.setOnClickListener(listener);
		Buttonexit.setOnClickListener(listener);
		ButtonSendDate.setOnClickListener(listener);
	}
	
	OnClickListener listener = new OnClickListener() {
		My_BroadCaster broadcaster =new My_BroadCaster();  //建立一个广播监听类对象
		@Override
		public void onClick(View arg0) {
			switch (arg0.getId()) {
			case R.id.button1:
				
				System.out.println("绑定");
				
				
				IntentFilter filter =  new IntentFilter();		// 建立一个过滤器		
				filter.addAction("android.intent.action.MY_BROADCAST"); // 给过滤器添加地址	可以自己定义			
				registerReceiver(broadcaster, filter);  // 将过滤器绑定到监听对象上
				
			
				
				break;
			case R.id.button2:
				System.out.println("解除绑定");
				unregisterReceiver(broadcaster);
				
				
				break;
			case R.id.button3:
				
				System.out.println("发送消息");
				Intent intent = new Intent();
				intent.setAction("android.intent.action.MY_BROADCAST");
				intent.putExtra("msg", "hello receiver.");
				sendBroadcast(intent);
				break;
			default:
				break;
			}
			
		}
	};
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值