Android——发送和接收广播
一,发送广播
利用Intent来发送广播。
使用:在需要发送广播的地方创建一个Intent对象,将信息的内容和用于过滤的信息封装起来,通过以下三种方法将Intent广播出去:
1,Context.sendBroadcast
2,Context.sendOrderedBroadCast
3,Context.sendStickyBroadcast
三种方法的区别:
1,sendBroadcast和sendStickyBroadcast发送出去的Intent,对于所有满足条件的BroadcastReceiver都会执行其onReceive方法。但若有多个满足条件的BroadcastReceiver,其执行onReceive方法的顺序是没有保证的。
2,通过sendOrderedBroadCast方法发送出去的Intent,会根据BroadcastReceiver注册时IntentFilter设置的优先级的顺序来执行onReceive方法,相同优先级的BroadcastReceiver执行onReceive方法的顺序是没有保证的。
其中,sendStickyBroadcast主要的不同时,Intent在发送后会一直存在,并且在以后调用registerReceiver注册相匹配的Receiver时会把这个Intent对象直接返回给新注册的Receiver
通常我们在发送广播时候,使用的是sendBroadcast,但需要注意的是,在构造Intent时,必须用一个全局唯一的字符串标示其要执行的动作,通常使用应用程序的包名称,也可以采用自己定义的动作。如果要在Intent中传递其他数据,可以用Intent的putExtra方法。
String Intent_Activity="lhc";
Intent intent=newIntent(Intent_Activity);
Intent.putExtra("参数",“参数值”);
sendBroadcast(intent);
二,接收广播
在于Activity相同的包下面定义广播器。广播器类要继承BroadcastReceiver类。
但是在接收到广播之后,要想处理相关事件,我们必须覆盖其OnReceiver方法,在该方法中实现对广播事件的相关处理,当安卓系统接收到与之匹配的广播消息时,会自动启动此BroadcastReceiver开始接受广播。
注意的是:OnReceive方法必须在5秒钟内执行完成,否则安卓系统会认为该组建失去响应,并提示用户强行关闭该组件。因此对于比较耗时的操作,要单独开一个线程。
三,声明广播
两种广播的注册方式:
1,代码注册广播
2,在AndroidMainfest.xml中注册
两种注册类型的区别:
1,第一种不是常驻型广播,也就是广播跟随程序的生命周期;
2,第二种是常驻类型的广播,也就是说当应用程序关闭后,如果有信息广播过来,程序广播接收器也会被系统调用自动运行。
四,示例
1,发送广播
public class BroadCastActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button=(Button)super.findViewById(R.id.button);button.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0) {String Intent_Action="com.example.broadcastdemp";Intent intent=new Intent(Intent_Action); //sendBroadcast(intent);//发送广播,并传递intentLog.e("BroadcastReceiver","sendbroadcast");}});}
2,接收广播
public class BroadcastReceiverActivity extends BroadcastReceiver{@Overridepublic void onReceive(Context arg0, Intent arg1) {String Intent_Action=arg1.getAction();if("com.example.broadcastdemp".equals(Intent_Action)){Log.e("BroadcastReceiver","onReceive");}}
}
4,使用XML配置接收广播的类
<receiver android:name=".BroadcastReceiverActivity"><intent-filter><action android:name="com.example.broadcastdemp"/></intent-filter></receiver>
run 下看看:
Android——发送和接收广播相关推荐
- [2021.11.6]使用BroadcastReceiver发送和接收广播
1 BroadcastReceiver简介 BroadcastReceiver类是所有广播接收器的抽象基类,子类对接收的广播进行筛选并做出响应.广播接收器的生命周期短,当广播消息到达时,调用onRec ...
- Android安全问题 抢先接收广播 - 内因篇之广播接收器注册流程
导读:本文说明系统是如何注册动态广播以及静态广播,这里主要注意其注册的顺序 这篇文章主要是针对我前两篇文章 android安全问题 抢先开机启动 - 结果篇 android安全问题 抢先拦截短信 ...
- Linux系统下UDP发送和接收广播消息小例子
分类: 网络通信 2013-01-07 10:54 1336人阅读 评论(6) 收藏 举报 [cpp] view plaincopyprint? // 发送端 #include <iostrea ...
- android 发送短信 广播 demo,向Android模拟器打电话发短信的简单方法
在开发android应用程序时,有时候需要测试一下向android手机拨打电话发送短信时该应用程序的反应.譬如编写一个广播接收器,来提示用户有短信收到或者处理短信,就需要向该手机发送短信来进行测试.这 ...
- Linux系统下UDP发送和接收广播消息小样例
[cpp] view plaincopy // 发送端 #include <iostream> #include <stdio.h> #include <sys/sock ...
- Android系统中发送和注册广播的方式以及优缺点
在Android系统中,有两种主要的方式可以发送和注册广播:标准广播(Normal Broadcast)和有序广播(Ordered Broadcast),它们各自有不同的优缺点. 1. 标准广播(No ...
- Android组件系列----BroadcastReceiver广播接收器
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- Android四大组件:广播机制——BroadcastReceiver
Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为 ...
- Android深入四大组件(八)广播的注册、发送和接收过程
前言 我们接着来学习Android四大组件中的BroadcastReceiver,广播主要就是分为注册.接收和发送过程.建议阅读此文前请先阅读Android深入理解四大组件系列的文章,知识重复的部分, ...
最新文章
- PCT-36.523
- luogu cover
- Oracle 同义词的创建及其作用
- Winform开发框架之插件化应用框架实现
- 内向者优势 原版_未来内向的人具有越来越高的竞争力——心理学:学会运用性格优势...
- 12本接收率高的医学SCI期刊
- 龙芯.NET正式发布 稳步推进生态建设
- html 字幕飘动效果,html 滚动字幕 制作滚动字幕效果 参数
- 设计模式系列 - 原型模式
- c++代码整洁之道pdf_别再问如何用python提取PDF内容了
- electron 打包把node代理服务打包进去_专题:让C++给node做技术加持(三)编译electron本地模块踩坑记
- Android音频实时传输与播放(四):源码下载(问题更新)【转】
- 走出迷宫(信息学奥赛一本通-T1254)
- 顺丰同城通过港交所聆讯 今年前五个月收入为30.46亿元
- web.xml filter 不包含_PHP文件包含
- 外贸网站需要ERP系统吗?
- ProGuard正确下载网址
- 软件安装出现【安装程序集组件时出错】时处理方案
- ORACLE SQL优化大全
- 中国移动彩信业务割接