转载: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);
分享到:
相关推荐
在Android应用开发中,`Service`和`BroadcastReceiver`是两个关键组件,它们在实现后台运行任务和系统事件监听方面发挥着重要作用。本项目聚焦于使用`Service`和`BroadcastReceiver`来控制一个音乐播放器,这涉及到...
Android锁屏无法继续定位问题 产生问题的原因: 手机锁屏后,Android系统为了省电以及减少CPU消耗,在一段时间后会将手机进入休眠状态。此时的服务以及线程等都会停止。 最近就这个问题,阅读了很多代码以及官方文档...
这是自己写的一个demo,利用应用A给应用B发送消息,主要用了BroadcastReceive,service,AIDL. 思想: 应用A发送通知给应用B;B接受到通知后,给自己发个推送的消息,点击进入所设定的消息页面后,用AIDL从A获取具体的...
下面将详细介绍这个过程及其涉及的关键知识点。 首先,我们需要创建一个BroadcastReceiver类,它会监听电池状态的变化。在`src/main/java/your_package_name`目录下,创建一个新的Java类,如`BatteryReceiver.java`...
Android项目和Unity项目
BroadcastReceiver在Android系统中扮演着一个至关重要的角色,它是Android四大组件之一,用于接收系统或应用广播事件。BroadcastReceiver使得应用程序可以在不运行的状态下接收并响应来自系统的各种广播消息,如系统...
主要为大家详细介绍了Android BroadcastReceiver实现网络状态实时监听,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
使用人群:BroadcastReceiver初学者。 里面涉及BroadcastReceiver的静态注册(无序广播)、动态注册(无序广播)、有序广播。 项目对应:https://shuaici.blog.csdn.net/article/details/118337894
【Android Studio—拦截保存的电话】是一个关于在Android平台上使用Android Studio进行移动开发的实践教程,特别是涉及到如何通过BroadcastReceiver来拦截并处理电话保存事件。这个压缩包包含了多个与项目相关的文件...
**Android Studio 自定义广播详解** 在 Android 应用开发中,广播接收器(BroadcastReceiver)是一种重要的组件,它允许应用程序监听并响应系统或应用广播事件。Android Studio 是 Google 推出的官方集成开发环境...
在Android应用开发中,"仿制QQ下线功能.zip"是一个示例项目,它演示了如何实现一个类似于QQ应用的强制下线功能。这个功能的关键在于利用Android系统的BroadcastReceiver组件来监听特定的事件,比如用户点击了“强制...
在安卓平台上,广播接收器(BroadcastReceiver)是系统服务与应用程序之间进行通信的重要组件。它允许应用在不运行的情况下响应系统或其它应用发出的广播事件。在这个“使用广播机制仿制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安装变化?...
文件"Getting-Current-Playing-Song-with-BroadcastReceive.pdf"可能包含了详细的步骤和示例代码,而"下载链接.txt"则可能是指向更详细教程或相关资源的链接。通过阅读这些资料,你可以深入理解如何在Android应用中...
在Android开发中,BroadcastReceiver(广播接收器)是四大组件之一,它负责监听系统或应用程序的特定事件,并在接收到广播时执行相应的操作。... ...例如: ```xml ...在这个例子中,定义了一个名为MyBroadcastReceiver的...