博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android广播学习笔记
阅读量:5258 次
发布时间:2019-06-14

本文共 2746 字,大约阅读时间需要 9 分钟。

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

2、<receiver/>标签还有一个子标签为<intent-filter/>,这个标签很重要,是指定接收器需要接收哪种广播

 

添加的监听器配置文件内容

MyBroadCast是继承了BroadcastReceiver的类

 

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

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

 

转载于:https://www.cnblogs.com/hbiao68/archive/2011/12/24/2300127.html

你可能感兴趣的文章
DP【洛谷P3089】 [USACO13NOV]POGO的牛Pogo-Cow
查看>>
【编程题目】在字符串中找出连续最长的数字串,并把这个串的长度返回
查看>>
bzoj3670 [Noi2014]动物园
查看>>
构建一个前端库-做一个富客户端的基类
查看>>
java 线程小例子
查看>>
Python学习1--数据类型与循环要点
查看>>
c语言实验三(3)
查看>>
C++常见编译错误
查看>>
如何让你不成为仅仅是代码工人?
查看>>
JAVA遇见HTML——JSP篇(1、JAVA WEB简介)
查看>>
mysql事务
查看>>
mysql 优化
查看>>
Generate transparent shape on image
查看>>
长沙方言书面教材
查看>>
Jenkins + maven 设置
查看>>
mac屏幕录制
查看>>
批量---修改保存 (通用方法)
查看>>
Java 享元设计
查看>>
20145118 《Java程序设计》 第3周学习总结
查看>>
函数内部的两个特殊的对象:arguments和this
查看>>