Android广播学习笔记

原创 2013年12月04日 09:48:21

1、首先我们要在Manifest.xml文件中配置一个<receiver/>标签,这个标签必须有一个android:name属性,值为继承自BroadcastReceiver类的接收器类,并复写onReceiver方法,在该方法中处理接收到广播后需要处理的事情!
2、<receiver/>标签还有一个子标签为<intent-filter/>,这个标签很重要,是指定接收器需要接收哪种广播

 

添加的监听器配置文件内容
MyBroadCast是继承了BroadcastReceiver的类

<receiver android:name="MyBroadCast">
	<intent-filter>
		<action android:name="hb.com.BroadCastDemo.MYBROADCAST"/>
	</intent-filter>
</receiver>

 

给按钮添加绑定的事件,发送广播的过程

btn.setOnClickListener(new Button.OnClickListener(){
	@Override
	public void onClick(View v) {
		System.out.println("onClick");
		Intent intent = new Intent();
		intent.setAction(MYBROADCAST);
		sendBroadcast(intent);
	}
});

 

接收广播处理的过程

public class MyBroadCast extends BroadcastReceiver {
	@Override
	public void onReceive(Context context, Intent intent) {
		System.out.println("onReceive");
	}
}

 

 

备注:在AndroidManifest.xml文件中注册,无论应用程序是否处于开启或关闭状态,它任然会是监听状态,这种方式不是很合理
在应用程序的代码中进行注册,registerReceiver()和unregisterReceiver()两个方法

 

Notification和NotificationManager的使用

 

通过他们可以显示广播信息的内容、图标以及振动等信息

显示效果:类似于收到短信的提示信息

public class BroadCastDemo extends Activity {
	Notification nf;
	NotificationManager nm;
	private static final String MYBROADCAST = "hb.com.BroadCastDemo.MYBROADCAST";
	private static final int MYID = 1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
		//得到NotificationManager对象
        String service = this.NOTIFICATION_SERVICE;
        nm = (NotificationManager)this.getSystemService(service);       
        //实例化Notification
        nf = new Notification();
        nf.icon = R.drawable.icon;
        nf.tickerText = "notification test";
        nf.when = System.currentTimeMillis();
        
        findViewById(R.id.broadCastBtn).setOnClickListener(new Button.OnClickListener(){
			@Override
			public void onClick(View v) {
				Intent intent = new Intent();
				//发送自定义的广播类型
				intent.setAction(MYBROADCAST);
				PendingIntent pi = PendingIntent.getBroadcast(BroadCastDemo.this, 0, intent, 0);
				nf.setLatestEventInfo(BroadCastDemo.this, "my title", "my content", pi);
				nm.notify(MYID, nf);
			}
        });
        
        findViewById(R.id.cancelCastBtn).setOnClickListener(new Button.OnClickListener(){
			@Override
			public void onClick(View v) {
				//取消广播
				nm.cancel(MYID);
			}
        });
    }
}

 

AlarmManager的使用
AlarmManager提供了一种系统级的提示服务,允许你安排在将来的某个时间执行一个服务

 

findViewById(R.id.alarmManagerOpen).setOnClickListener(new Button.OnClickListener(){
	@Override
	public void onClick(View v) {
		Intent intent = new Intent();
		intent.setAction(MYBROADCAST);
		PendingIntent pi = PendingIntent.getBroadcast(BroadCastDemo.this, 0, intent, 0);
		long time = System.currentTimeMillis();
		AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
		am.setRepeating(AlarmManager.RTC_WAKEUP, time, 8 * 1000, pi);
	}
});

 

ZigBee自学笔记总结

ZigBee自学笔记总结 ,详细介绍了ZigBee技术的产生,发展,组网原理,等具体的使用情况...
  • u011401496
  • u011401496
  • 2015年01月18日 14:55
  • 7341

SAE 1939学习笔记(一)

SAE 1939学习笔记(一)
  • ppdyhappy
  • ppdyhappy
  • 2016年07月13日 11:14
  • 2867

Android学习笔记十二之Android基础UI三

Android学习笔记十二之Android基础UI三
  • solo_talk
  • solo_talk
  • 2016年06月29日 16:47
  • 3649

广播机制 -- MarsChen Android 开发教程学习笔记

广播机制 Broadcaset Receiver Broadcast Receiver 是一个广播接收器,当有事件出发的时候系统会响所有广播接收器发送广播,符合该广播条件的接收器就会启动,开发者在相应...
  • roller44
  • roller44
  • 2014年09月03日 11:19
  • 338

Android学习笔记-广播机制的一些简单实例

广播 在广播实例开始之前先抛出一些关于广播的概念广播的概念 现实:电台通过发送广播发布消息,买个收音机,就能收听 Android:系统在产生某个事件时发送广播,应用程序使用广播接收者接收这个广播...
  • Dimons_Q
  • Dimons_Q
  • 2016年02月22日 12:57
  • 330

Android学习笔记——广播机制

网络通信中,在一个IP网络范围内,最大的IP地址是被保留作为广播地址来使用的。如某网络IP范围是192.168.0.XXX,子网掩码是255.255.255.0,那这个网络的广播地址就是192.168...
  • lanjingling09
  • lanjingling09
  • 2017年08月03日 17:42
  • 164

Android学习笔记之广播机制(1)

广播接收者(BroadcastReceiver)用于异步接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBr...
  • SJF0115
  • SJF0115
  • 2012年01月31日 18:00
  • 1080

Android之BroadcastReceiver(接收广播消息)学习笔记(一)

Android之BroadcastReceiver(广播消息)学习笔记  BroadcastReceiver是四大组件之一,这种组件本质上就是一个全局监听器,用于监听系统全局的广播消息。这种实现,就是...
  • qq_27630169
  • qq_27630169
  • 2016年08月29日 21:47
  • 230

Mars Android视频学习笔记——01_21/22_广播机制

     Android中的广播,可以理解成系统发出的消息,我们通过接收这些广播可以进行相应的处理。    为了要接收系统的广播,需要继承BroadcastReceiver,生成自己的类,并覆写其on...
  • sam_zhang1984
  • sam_zhang1984
  • 2011年03月13日 22:28
  • 2374

Android学习笔记_19_广播接收者 BroadcastReceiver及其应用_窃听短信_拦截外拨电话

一、广播接收者类型:   广播被分为两种不同的类型:“普通广播(Normal broadcasts)”和“有序广播(Ordered broadcasts)”。 普通广播是完全异步的,可以在同一...
  • lbdreaming
  • lbdreaming
  • 2014年02月26日 17:06
  • 693
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android广播学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)