转载:http://blog.csdn.net/Zengyangtech/archive/2010/11/21/6025676.aspx
BroadcastReceiver
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。下面将详细的阐述如何发送Broadcast和使用BroadcastReceiver过
滤接收的过程:
首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象,然后通过调用 Context.sendBroadcast()、sendOrderBroadcast()或sendStickyBroadcast()方法,把 Intent对象以广播方式发送出去。
当Intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的IntentFilter是否与发送的Intent相匹配,若 匹配则就会调用BroadcastReceiver的onReceive()方法。所以当我们定义一个BroadcastReceiver的时候,都需要 实现onReceive()方法。
注册BroadcastReceiver有两种方式:
一种方式是,静态的在AndroidManifest.xml中用<receiver>标签生命注册,并在标签内用<intent- filter>标签设置过滤器。
另一种方式是,动态的在代码中先定义并设置好一个 IntentFilter对象,然后在需要注册的地方调 Context.registerReceiver()方法,如果取消时就调用Context.unregisterReceiver()方法。
不管是用xml注册的还是用代码注册的,在程序退出的时候没有特殊需要都得注销,否则下次启动程序可能会有多个 BroadcastReceiver
另外,若在使用sendBroadcast()的方法是指定了接收权限,则只有在AndroidManifest.xml中用<uses- permission>标签声明了拥有此权限的BroascastReceiver才会有可能接收到发送来的Broadcast。
同样,若在注册BroadcastReceiver时指定了可接收的Broadcast的权限,则只有在包内的AndroidManifest.xml中 用<uses-permission>标签声明了,拥有此权限的Context对象所发送的Broadcast才能被这个 BroadcastReceiver所接收。
动态注册:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(String);--为 BroadcastReceiver指定action,使之用于接收同action的广播 registerReceiver(BroadcastReceiver,intentFilter);
一般:在onStart中注册,onStop中取消unregisterReceiver
发送广播消息:extends Service
指定广播目标Action:Intent Intent = new Intent(action-String)
--指定了此action的receiver会接收此广播
需传递参数(可选) putExtra();
发送:sendBroadcast(Intent);
分享到:
相关推荐
service和BroadcastReceive控制的音乐播放器
Android锁屏无法继续定位问题 产生问题的原因: 手机锁屏后,Android系统为了省电以及减少CPU消耗,在一段时间后会将手机进入休眠状态。此时的服务以及线程等都会停止。 最近就这个问题,阅读了很多代码以及官方文档...
BroadCast+BroadCastReceive+notification 实现广播通知到通知栏!
本demo综合使用了 DownloadManager、IntentService、BroadcastReceive。实现了不受周期影响的后台apk下载并自动安装
BroadcastReceiver的详细介绍和demo例子,有很详细的代码解释说明,比较适合初学者,使用的是kotlin编写,大家学习请下载
这是自己写的一个demo,利用应用A给应用B发送消息,主要用了BroadcastReceive,service,AIDL. 思想: 应用A发送通知给应用B;B接受到通知后,给自己发个推送的消息,点击进入所设定的消息页面后,用AIDL从A获取具体的...
主要为大家详细介绍了Android BroadcastReceiver实现网络状态实时监听,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
使用人群:BroadcastReceiver初学者。 里面涉及BroadcastReceiver的静态注册(无序广播)、动态注册(无序广播)、有序广播。 项目对应:https://shuaici.blog.csdn.net/article/details/118337894
主要介绍了Android BroadcastReceiver广播注册方式总结的相关资料,需要的朋友可以参考下
详细内容参考博客:https://blog.csdn.net/Da_Xiong000/article/details/105326901
参考博客:https://blog.csdn.net/Da_Xiong000/article/details/105326901
根据本讲学习内容,通过一个Button进行界面布局,应用BroadcastReceiver实现手机电量查询。 (1) 提交的作业包中含有应用程序运行效果截图。
采用系统级广播的方式,当点击强制退出的时候会广播下线的通知并生成弹窗,点击确定会重新返回到登录界面
使用广播机制仿制QQ强制下线功能使用广播机制仿制QQ强制下线功能有弹出框的提示
android BroadcastReceiver ,文档可以详细查看教程 https://blog.csdn.net/u013519290/article/details/122401102https://blog.csdn.net/u013519290/article/details/122401102
Android 接收开机广播,自动运行本app,开机广播 运行本程序 android root 定制设备使用
Android四大组件之一BroadcastReceiver实战demo,实现广播注册、发送、注销等功能,并给出实际开发过程中3种常见场景解决方案,1.如何监听网络变化?2.如何监听手机电量变化?3.如何监听app安装变化?...