broadcastreceiver

时空矩人 时空矩人     2022-08-01     671

关键词:

BroadcastReceiver 广播接受者

 Android中, Broadcast是一种数据传递的方式/通信方式.

Brodadcast 是Android 系统组件之一

 

广播的特性

  1. 由一个发送方, 若干接收方组成

  2. 发送方与接收方存在匹配规则

广播的分类

  1. 普通广播

  2. 有序广播: 各个接受者在接收广播时会遵循一定的先后顺序接收广播

调用方式

  Intent intent = new Intent(this, XXX.class);

  intent.setAction("xxx");   // 这里需要在项目清单(Manifast.xml)中的intent-filter注册

  sendBrodacast(intent);

发送广播

  调用由ContextWrapper定义的sendBroadcast(Intent)方法.

  发送广播时使用的Intent对象, 应该封装Action属性, 而广播接受者需要使用IntentFilter匹配该广播.

  发送广播时, 也可以在Intent中封装需要传递的数据, 通常使用Intent的Extra属性

接收广播

  1. 自定义类, 继承自BroadcastReceiver

  2. 在AndroidManifest.xml 中的<application>节点下, 添加<receiver>节点对该广播接受者进行注册,

    并在<receiver>节点下添加<intent-filter>子级节点, 用于匹配广播发送时的Intent对象  

  3. 重写广播接受者类中的onReceive()方法(可以在这个方法中获取广播传过来的数据, 或者一些其他处理, 实现对广播的处理

 

广播的用法一般使用内部类

  如果是内部类, 不能直接在Manifest.xml 中的 intent-file中注册(静态注册), 需要通过代码动态注册

  在程序中调用registerReceiver(BroadcastReceiver, IntentFilter)注册

 

静态注册 & 动态注册区别

  静态注册: 通过AndroidManifest.xml注册   (常驻型: 一旦注册永久存在)

  动态注册: 在程序中通过代码进行注册  (实时型: 只有当代码生效时存在, 如果代码过了就不存在了)

 

BroadcastReceiver 是不是只监听变化?

】BroadcastReceiver是不是只监听变化?【英文标题】:DoesaBroadcastReceiveronlylistentochanges?BroadcastReceiver是否只监听变化?【发布时间】:2012-07-2215:05:17【问题描述】:我正在阅读指南here,关于设置BroadcastReceiver以检查电池的变化。它... 查看详情

broadcastreceiver

广播接收者案例_ip拨号器 (1)定义一个类继承BroadCastReceiver   publicclassOutGoingCallReceiverextendsBroadcastReceiver{//当接收到外拨电话的事件的时候回执行这个方法@OverridepublicvoidonReceive(Contextcontext,Intentintent) 查看详情

采用单独扩展 BroadcastReceiver 的类

】采用单独扩展BroadcastReceiver的类【英文标题】:TakingaclassthatextendsBroadcastReceiveralone【发布时间】:2013-09-3001:25:58【问题描述】:有许多扩展BroadcastReceiver的类示例,可以通过意图从另一个类激活。类也从BroadcastReceiver扩展而来,... 查看详情

broadcastreceiver类

java.lang.Object   ?android.content.BroadcastReceiver已知直接子类AppWidgetProviderDeviceAdminReceiver,WakefulBroadcastReceiver类概述基类代码会收到sendbroadcast()意图。假设你不须要在应用程序发送广播,考虑使用localbroadcastman 查看详情

android从broadcastreceiver刷新listview

】android从broadcastreceiver刷新listview【英文标题】:androidrefreshlistviewfrombroadcastreceiver【发布时间】:2016-01-1703:45:19【问题描述】:我的应用在一个活动中包含一个ListView和一个BroadcastReceiver。我希望我的Broadcastreceiver在触发时刷新Lis... 查看详情

android中创建一个broadcastreceiver

首先创建一个java类继承BroadcastReceiver类 packagecom.example.service;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.widget.Toast;publicclas 查看详情

broadcastreceiver

BroadcastReceiver的概念  BroadcastReceiver的作用主要是用来监听系统或者应用发出的广播信息,然后根据广播信息作为相应的逻辑处理;说通俗点其实上就是一种全局监听器,要来实现系统中不同组件之间的通信。有时候也会用来... 查看详情

AlarmManager 不调用 BroadcastReceiver

】AlarmManager不调用BroadcastReceiver【英文标题】:AlarmManagerdoesnotcallBroadcastReceiver【发布时间】:2019-05-0909:53:53【问题描述】:我在每天的特定时间创建了一个预定的重复警报,使用AlarmManager在扩展BroadcastReceiver的类中触发通知。但... 查看详情

BroadcastReceiver 总是与网络断开连接

】BroadcastReceiver总是与网络断开连接【英文标题】:BroadcastReceiveralwaysgetdisconnectedfromnetwork【发布时间】:2016-09-0708:21:21【问题描述】:我关注了AndroidDeveloperstutorialManagingNetworkUsage。似乎BroadcastReceiver总是与网络断开连接。我尝试... 查看详情

broadcastreceiver

BroadcastReceiver,四大组件之一,翻译过来就是广播接收器,那么什么时候会用到BroadcastReceiver呢,又或者说,什么情况下我们需要用到广播呢我认为主要是以下三种情况1,在某些特殊情况下发出广播(如开机,网络可用,又或者... 查看详情

broadcastreceiver广播相关-转

BroadcastReceiver广播接收者用于接收系统或其他程序(包括自己程序)发送的广播。一.注册广播在android中,我们如果想接收到广播信息,必须自定义我们的广播接收者。要写一个类来继承BroadcastReceiver,并且重写其onReceive()方法,... 查看详情

BroadcastReceiver 总是不充电

】BroadcastReceiver总是不充电【英文标题】:BroadcastReceiverallwaysgetnotcharging【发布时间】:2013-11-0506:18:50【问题描述】:我正在尝试检测设备当前是否正在充电,但此代码始终将isCharging变量设置为false:publicclassPowerReceiverextendsBroadca... 查看详情

如何设置 BroadcastReceiver 权限(安全)

】如何设置BroadcastReceiver权限(安全)【英文标题】:HowtoSetBroadcastReceiverPermissions(Security)【发布时间】:2015-01-3005:43:08【问题描述】:所以我有2个应用程序-A和B。在A中,我有一个BroadcastReceiver。在receiver标签(清单文件)中,我... 查看详情

broadcastreceiver基本使用

BroadcastReceiver介绍BroadcastReceiver翻译成中文叫“广播接收器”,所以它的作用是用来接收发送过来的广播的。Android应用程序可以发送或接收来自Android系统和其他Android应用程序的广播消息,类似于发布订阅设计模式。当有兴趣的... 查看详情

学习笔记broadcastreceiver的运用

一、Activity与BroadcastReceiver通信1)新建一个BroadcastReceiver,在MainActivity里通过sendBroadcast方法发送数据650)this.width=650;"src="http://s3.51cto.com/wyfs02/M02/89/5A/wKiom1gQVq_An8z3AAAUzJCb3Zw209.png"title="QQ截图201 查看详情

BroadcastReceiver 生命周期——静态变量

】BroadcastReceiver生命周期——静态变量【英文标题】:BroadcastReceiverLifeCycle--StaticVariables【发布时间】:2011-09-1201:25:51【问题描述】:我有一个BroadcastReceiver类。我声明了一些静态变量,其值在onReceive()方法中更新。据我所知,静... 查看详情

BroadcastReceiver 的 onReceive 中 Intent extra 为空

】BroadcastReceiver的onReceive中Intentextra为空【英文标题】:IntentextrasareemptyinonReceiveofBroadcastReceiver【发布时间】:2018-04-1902:46:03【问题描述】:我想在BroadcastReceiver类的onReceive()方法中从Intent中获取一些参数。但是只有intALARM_COUNT=1,... 查看详情

BroadcastReceiver 不在发布模式下执行

】BroadcastReceiver不在发布模式下执行【英文标题】:BroadcastReceivernotexecuteonreleasemode【发布时间】:2019-01-2609:29:34【问题描述】:我尝试实现RequestSMSVerificationinanAndroidApp,我的代码在调试中就像一个魅力,但是当我生成签名apk应用... 查看详情