Android开发之浅谈广播的运用

之前讲过了activity,服务service和内容提供者,四大组件就还差广播没讲,所以就顺便讲讲吧。当然,这里都是很基础的讲解,没有深入,要是深入的话光一个activity就可以讲很久。所以这里只做基础使用的讲解了。

时间紧迫,直接上代码吧。

首先,广播有两种注册方式,一种在清单文件中注册,注册后程序一运行广播就开始监听。一种在代码中注册,根据需求注册注销广播。

我们先看广播的第一种注册方式,首先定义一个广播接受者

package com.batways.apopo.receiver;

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

/**
 * @ClassName: TestReciver
 * @author victor_freedom (x_freedom_reddevil@126.com)
 * @createddate 2015年2月28日 下午9:31:23
 * @Description: TODO
 * 
 */
public class TestReciver extends BroadcastReceiver {

	@Override
	public void onReceive(Context arg0, Intent arg1) {
		// TODO Auto-generated method stub

	}

}
然后再清单文件中注册

  <receiver android:name="com.batways.apopo.receiver.TestReciver" >
            <intent-filter>
                <action android:name="aaa.bbb.ccc" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>
这样,当程序启动的时候,广播就开始监听动作为“aaa.bbb.ccc”的意图。


接下来再看在代码中注册广播

首先在代码中new一个广播接受者

	private class UpdateCreditsBroadCast extends BroadcastReceiver {
		@Override
		public void onReceive(Context context, Intent intent) {
			
		}

	}
然后用代码注册:category可以填可以不填

mUpdateCreditsBroadCast = new UpdateCreditsBroadCast();
		IntentFilter filter = new IntentFilter("com.batways.apopo_core.service");
		//filter.addCategory(Intent.ACTION_DEFAULT);
		registerReceiver(mUpdateCreditsBroadCast, filter);

一般而言,在该注册文件的生命周期函数中的起始函数注册广播,在结束函数中注销广播:

unregisterReceiver(mUpdateCreditsBroadCast);
		mUpdateCreditsBroadCast = null;

这样,就完成了再代码中广播的注册与注销。

那么,我们发送广播的时候,该怎么弄呢。这里博主提供一个广播工具类吧,一般的都能满足使用了。这里需要特别注意,如果广播注册的时候加了category,这里就需要加,如果没有,这里就不需要加了。

public class BroadcastHelper {

	
	/**
	 * 发送String 类型的值的广播
	 * @param context
	 * @param action
	 * @param key
	 * @param value
	 */
	public static void sendBroadCast(Context context,String action,String key,String value) {
		Intent intent = new Intent();
        intent.setAction(action);
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.putExtra(key, value);
        context.sendBroadcast(intent);
	}
	
	public static void sendBroadCast(Context context,String action,String key,int value) {
		Intent intent = new Intent();
		intent.setAction(action);
		intent.addCategory(Intent.CATEGORY_DEFAULT);
		intent.putExtra(key, value);
		context.sendBroadcast(intent);
	}
	

}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值