android 广播
关于广播以前感觉是一知半解的,这次看到同事整理的文档,顺带跟着再参考几篇博文也学习整理了下,先上个整理的图

代码模板
发送广播
public static final String RECEIVE_ACTION = "com.demo.receive_action";
public static final String RECEIVE_PERMISSION ="com.demo.receive_permission";
Intent intent = new Intent();
//设置Action
intent.setAction(RECEIVE_ACTION);
//添加附加信息
intent.putExtra("msg", "我是普通广播");
//设置指定接送广播的应用报名,可以是其它应用包名字符串,这里使用的是自己
intent.setPackage(getPackageName());
//发送广播时指定权限,这里的权限需要在使用方的manifest中通过形如
// <uses-permission android:name="com.demo.receive_permission" />进行“使用声明”
sendBroadcast(intent, RECEIVE_PERMISSION);
静态注册
<!-- 声明权限 -->
<permission android:name="com.demo.receive_permission"/>
<!--静态注册
exported默认为true,在这里指定false,只接受应用内广播-->
<receiver
android:name=".DynamicReceiver"
android:enabled="true"
android:exported="false"
android:permission="com.demo.receive_permission">
<intent-filter android:priority="100">
<action android:name="com.demo.receive_action"/>
</intent-filter>
</receiver>
动态注册
DynamicReceiver dynamicReceiver = new DynamicReceiver();
IntentFilter dynamicFilter = new IntentFilter();
//注册广播的Action
dynamicFilter.addAction(RECEIVE_ACTION);
//设置优先级
dynamicFilter.setPriority(100);
//注册时设置权限
registerReceiver(dynamicReceiver, dynamicFilter, RECEIVE_PERMISSION, null);
小结
消息通信在Android上可以用多种方式来实现,我觉得一般而言:
如果是同一进程内跨线程的消息通信可以优先考虑使用RxBus和EventBus等框架(单例是进程内共享内存的);
如果是同一应用内跨进程的消息通信可以优先考虑使用support v4包中的LocalBroadcastManager,当然如果是使用顺序或粘性等特殊广播,就没办法使用LocalBroadcastManager了;
如果是跨应用的消息通信才会考虑使用BroadcastReceive组件。
相关知识内容链接
Android探索之BroadcastReceiver具体使用以及安全性探究
Android BroadcastReceiver介绍
LocalBroadcastManager 的实现原理
Android 自定义权限
自启动失败原因
BroadcastReceiver的原理和使用里面有些注意事项讲的比较细,比如动态注册比静态注册优先级要高,onReceive函数原则不能超过10秒,否则会有ANR,
android 广播的更多相关文章
- Android随笔之——Android广播机制Broadcast详解
在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理.这个广播跟我们传统意义中的电台广播有些相似之处.之所以叫做广播,就 ...
- Android广播机制的深入学习
部分内容转载自http://www.cnblogs.com/lwbqqyumidi/p/4168017.html 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者 ...
- Android总结篇系列:Android广播机制
1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...
- Android广播机制概述
1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...
- Android广播机制:Broadcast
转载:Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广 ...
- Android(java)学习笔记172:BroadcastReceiver之 Android广播机制
Android广播机制 android系统中有各式各样的广播,各种广播在Android系统中运行,当"系统/应用"程序运行时便会向Android注册各种广播.Android接收到广 ...
- Android广播机制(转)
1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...
- Android广播的发送与接收
Android广播的发送与接收 效果图 广播发送 广播分为有序广播和无序广播 有序广播与无序广播的区别 无序广播:只要是广播接收者指定了接收的事件类型,就可以接收到发送出来的广播消息.不能修改消息. ...
- Android广播机制
原文出处: Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的 ...
- 【Android】Android 广播大全
[Android]Android 广播大全 String ADD_SHORTCUT_ACTION 动作:在系统中添加一个快捷方式. String ALL_APPS_ACTION 动作:列举所有可用的应 ...
随机推荐
- express快速搭建web server
安装express4.x npm install -g express npm install -g express-generator //express命令行工具在4.x分离出来了 express ...
- 详细解析Java中抽象类和接口的区别
在Java语言中, abstract class 和interface 是支持抽象类定 义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和in ...
- mybatis 使用resultMap实现关联数据的查询(association 和collection )
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...
- Excel导入导出,生成和下载Excel报表、附件等操作--ASP.NET
public class OutExcel { public static void OutExcel_bb(DataTable dt, string thepath, string temppath ...
- 使用 systemd timer 备份数据库
导读 主要的Linux发行版都改用systemd 来替代 System V启动方式,其中 systemd timer 能替代 crontab 计划任务的大部分功能.本文介绍了用systemd time ...
- ZeroMQ(java)中监控Socket
基本上ZeroMQ(java)中基本的代码都算是过了一遍了吧,不过觉得它在日志这一块貌似基本没有做什么工作,也就是我们通过日志来知道ZeroMQ都发生了什么事情.. 而且由于ZeroMQ中将连接的建立 ...
- poj1182(食物链)续
意 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有人用 ...
- [ruby on rails] 跟我学之(5)显示所有数据
之前的index页,显示的是hello world,现在将其修改为显示我们在rails console里面录入的数据. 1. 修改action 如之前的章节<[ruby on rails] 跟我 ...
- Linux下crontab命令的用法
cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序.例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行. 服务的启动和停止 ...
- 【OpenStack】OpenStack系列10之Horizon详解
一.参考其他资料即可.可以采用haproxy+apache+horizon方式部署,haproxy/httpd支持ssl.