Android四大组件之Broadcast

一。简介。

在Android中,BroadCast是一种广泛应用在应用程序之间的传输信息的机制。而BroadCastReceiver是对发出的BroadCast进行过滤和响应的一类组件。

对BroadCastReceiver的两种注册方式:

静态注册:

<receiver android:name="继承BroadcastReceiver的类的名字"> <intent-filter>

<action android:name="要监听的消息名字"/>

</intent-filter> </receiver>

动态注册:

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(“”); //为BroadcastReceiver指定action,即要监听的消息名字。
registerReceiver(MyBroadcastReceiver,intentFilter) ; //注册监听
unregisterReceiver(MyBroadcastReceiver); //取消监听

二。接下来通过一个简单的Demo来简单介绍BroadCastReceiver的使用:

首先是在Manifest.xml中注册BroadcastReceiver:

 

 <receiver 
            android:name=".MyReceiver">
            <intent-filter>
                <action android:name="com.android.douf"/>
            </intent-filter>
        </receiver>


在Activity中发送消息:

package com.android.douf;

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

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
	private Button send;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        send = (Button) findViewById(R.id.send);
        send.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setAction("com.android.douf");
				intent.putExtra("msg", "Hello");
				sendBroadcast(intent);
				
			}
		});
    }
}


在BraodCastReceiver中接受消息:

package com.android.douf;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class MyReceiver extends BroadcastReceiver{

	@Override
	public void onReceive(Context context, Intent intent) {
		if (intent.getAction().equals("com.android.douf")) {
			Toast.makeText(context, intent.getStringExtra("msg"), Toast.LENGTH_SHORT).show();
		}	
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值