Android学习_广播接收器
一、广播
1. 标准广播和有序广播
标准广播:异步,发出消息,所有接收器同时接收。但无法被截断
有序广播:同步,同一时刻只有一个广播接收器接收。可截断消息。
2. 广播注册
代码中注册(动态注册)、AndroidManifest.xml中注册(静态注册)
1) 动态注册
动态注册更灵活,但是必须要在程序启动后才能接收广播。
Step1:新建一个继承BroadcastReceiver类的类(自定义类或者内部类),并重写onReceive方法(广播接收器接收到相应广播后,会自动调用onReceive()方法)
Step2:创建IntentFilter并添加需要监听广播所对应的action值
Step4:用registerReceiver()注册监听器,将监听器和IntentFilter的实例作为两个参数传入(Context.registerReceiver()方法)
Step3:重写所在activity的onDestory()方法,在onDestory()中用unregisterReceiver()取消注册监听器(动态注册广播接收器一定要取消注册)
注意:如果程序需要进行一些对用户比较敏感的操作,必须在配置文件中声明权限
2) 静态注册
启动未程序时就能接收广播
2. 发送自定义广播
1) 发送标准广播
Intent intent = new Intent(“com.example.broadcasttest.MY_BROADCAST”); // com.example.broadcasttest.MY_BROADCAST是自定义广播的值
sendBroadcast(intent);
提示:可以在intent中携带一些数据传递给广播接收器。
2) 发送有序广播
sendOrderedBroadcast(intent,null);
u 设置优先级:
<intent-filter android:priority=”100”>…
u 截断广播
在onReceive()方法中调用abroadBroadcast()方法
3. 本地广播
解决广播的安全性问题。
首先通过LocalBroadcastManager的getInstance()方法得到它的实例。
注册广播接收器:LocalBroadcastManager.registerReceiver(localReveiver,intentFilter);
发送广播:LocalBroadcastManager.sendBroadcast(intent);
取消注册:LocalBroadcastManager.unregisterReceiver(localReceiver);
4. 最佳实践——实现强制下线功能
1) 使用继承提高代码的复用性
2) 在onResume中注册广播接收器,在onPause中取消注册。这样就可以保证只有处于栈顶的活动才能接收到广播,非栈顶活动接收不到。
Android学习_广播接收器的更多相关文章
- Android学习笔记--广播(Broadcast)
1.Android广播分类 android的广播类型分为两类:标准广播和有序广播. 标准广播:异步广播,广播发出后,所有注册了的广播接收器都会同时接收到该广播.打个比方:做地铁过程中的语音播报,当列车 ...
- Android学习_注意事项
一. Fragment中加载ListView public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle ...
- Android学习_服务
一. 服务1. Android多线程 每一个Android应用程序都会分别运行在一个独立的Dalvik(或ART?)虚拟机中,而每个虚拟机在启动时会运行一个UI主线 ...
- Android学习_内容提示器
内容提供器 1. 创建自己的内容提供器 1) 继承ContentProvider类,重写6个方法:onCreate().query().insert().update().delete ...
- Android学习_数据持久化
数据持久化:将内存中的瞬时数据存储到设备中 1. 文件存储 存储一些简单的文本数据或二进制数据. 核心:Context类提供的openFileOutput()和openFileInput()方法,然后 ...
- android广播接收器
Android程序创建广播接收器继承BroadcastReceiver Android广播接收器需要在AndroidManifest.xml文件中声明: <recevie android:nam ...
- 入职小白随笔之Android四大组件——广播详解(broadcast)
Broadcast 广播机制简介 Android中的广播主要可以分为两种类型:标准广播和有序广播. 标准广播:是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播 ...
- Android中的广播
Android中的广播 广播接受器,可以比喻成收音机.而广播则可以看成电台. Android系统内部相当于已经有一个电台 定义了好多的广播事件,比如外拨电话 短信到来 sd卡状态 电池电量变化... ...
- android 学习笔记 杂记1
getIntent().getExtras().get("intent"); 这个intent是数据包装的参数. 比如: Intent intent = new Intent(th ...
随机推荐
- vs 2017创建类时的默认模板修改
思路:找到vs 2017安装目录---->找到模板文件---->修改 一般安装目录: C:\Program Files (x86)\Microsoft Visual Studio\2017 ...
- O043、计算节点宕机了怎么办
参考https://www.cnblogs.com/CloudMan6/p/5562131.html Rebuild 可以恢复损坏的instance .那如果是宿主机坏了怎么办呢?比如硬件故障或者 ...
- Presto基础知识
背景 MapReduce不能满足大数据快速实时adhoc查询计算的性能要求. Facebook的数据仓库存储在少量大型Hadoop/HDFS集群.Hive是Facebook在几年前专为Hadoop打造 ...
- 【转】CnBlogs自定义博客样式
文章有一个好的排版,将能够增加阅读者对其内容的兴趣. 本文总结了如何美化博客园中文章的部分显示样式. 1.美化文章标题的显示样式 2.增添LaTex数学公式的显示 3.目录索引的显示 4.添加文章末尾 ...
- javascript是一种安全语言
一.简单JavaScript是一个基于Java基本语句和控制流的简单而紧凑的设计,这是学习Java的一个很好的过渡.它的变量类型是弱类型,而不是严格的数据类型.二.力学JavaScript是动态的,可 ...
- 斐波那契数列(js)
//斐波那契数列:后一个数等于前面两个数的和 //0,1,1,2,3,5,8,13,21.... let readline = require("readline-sync"); ...
- Keepalived + Haproxy + PXC 理论篇
最终模型: 将Kp1 + Kp2 分别和Ha1和Ha2部署在一起,同时绑定VIP ip,对外提供访问,同时监控本机的Haproxy的可用性 通过Ha1 + Ha2 为PXC提供负载均衡,分发请求到后端 ...
- 查看 SharePoint Server 中的所有网站集
网站集是具有同一所有者并共享管理设置(例如权限和配额)的一组网站.网站集是在 Web 应用程序中创建的.创建网站集时,将自动在网站集中创建一个首要网站.然后,可以在首要网站下创建一个或多个子网站.首要 ...
- idea 启动ssm项目
https://www.cnblogs.com/yeya/p/10320885.html https://www.cnblogs.com/chenlinghong/p/8339555.html
- win10 sql server2012 连接navicat 无法使用
修改 连接navicat时报如下错误,按照网上办法,各种删除navicat的客户端,行不通. 点击sqlserver管理器,提示评估期已过.有关如何升级的测试版软件的信息,请访问http://www. ...