静态注册BroadcastReceiver的注销问题
[写在前面:距离上次发布有关技术的文章已经整整一年了,人也奔三了,NBA季后赛也开打了,朋友都当爹当妈了,我也该回归了。是的,it's time! ]
Android和OPhone是什么,我想我不需要再花什么时间去介绍了,跟着3G的潮流,这些名词已经变得炙手可热。Michael(Perhaps is my nickname. )也开始关注起Android/OPhone上的开发了。如果您也和我一样刚刚投身于这个领域,您可以参考园子里两位牛人写的系列文章,感谢他们的辛勤劳动和热心分享!
1、Android开发之旅 by 吴秦
2、深入Android系列 by Venus神庙
BroadcastReceiver是一个用于监听应用程序运行环境变化,并且对变化事件作出响应的组件。譬如说,当电池电量低、SD卡拔插或者手机启动完毕等等事件发生的时候,系统都会广播相应的事件,那么,我们在应用程序中就可以利用BroadcastReceiver对这些事件进行监听,并且执行onReceive方法作出相应的处理。
我们可以通过两种方式注册BroadcastReceiver,一是在Activity启动过程中通过代码动态注册,二是在AndroidManifest.xml文件中利用<receiver>标签进行静态注册。对于第一种方法,我们需要养成一个良好的习惯:在Activity进入停止或者销毁状态的时候使用unregisterReceiver方法将注册的BroadcastReceiver注销掉。基于此,我们很自然就会想,如果通过第二种方法注册的BroadcastReceiver,是否需要通过代码进行注销呢?基于这个问题,Michael在OPhoneSDN上提出这个疑问。
最后,Michael还是从Android的源代码中找到了这样的注释:If this BroadcastReceiver was launched through a <receiver> tag, then the object is no longer alive after returning from this function. This means you should not perform any operations that return a result to you asynchronously. 这段文字告诉我们:如果通过<receiver>标签来注册的BroadcastReceiver,那么该对象的实例在onReceive被调用之后就会在任意时间内被销毁。也就是说,我们并需要担心静态注册的BroadcastReceiver的销毁问题。
虽然,这个过程貌似有点枉费心机,但是,Michael还找到了如何将Android源码添加到IDE中,以便在开发过程中浏览,同时还用上了很cool的版本控制软件——Git。昨晚的兜兜转转实际上收获颇丰,开心ing......
转载于:https://www.cnblogs.com/perhaps/archive/2010/04/17/1714230.html
静态注册BroadcastReceiver的注销问题相关推荐
- 静态注册BroadcastReceiver内部类
先看代码: [java] view plaincopy public class ZonePicker { public static class SetDefaultTimeZone extends ...
- android的动态注册,Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发...
本文将带你了解Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发,希望本文对大家学Android有所帮助 BroadcastReceiver ...
- Android复习12【广播接收者-BroadcastReceiver(简单案例-发送广播、静态注册、动态注册、本地广播、代码示例(别处登陆踢用户下线)、常用系统广播总结、音乐播放器)】
2020-04-28[11周-周二] 音乐播放器Android代码下载:https://wws.lanzous.com/ifqzihaxvij 目 录 简单案例-发送广播 2)动态注册实例(监听网 ...
- android 静态注册wifi广播,Android中BroadcastReceiver详解
BroadcastReceiver是什么? Android app可以发送广播也可以接收系统或者其它app发送的广播,是发送/订阅的设计模式.这些广播被发送当重要的事件发生的时候.例如,安卓系统发送广 ...
- Android 第十九课 大喇叭--广播机制----动态注册监听网络变化与静态注册实现开机启动
为了便于进行 系统级别的消息通知,Android引入了一套广播消息机制. 1.广播机制简介: 因为Android中的每个应用程序都可以对自己感兴趣的广播尽心注册,这样程序只会接收自己所关心的广播内容, ...
- 1-AII--BroadcastReceiver广播的静态注册与动态注册
一.静态广播注册 MainActivity.java public class MainActivity extends AppCompatActivity {@BindView(R.id.btn_s ...
- 广播接收器动静态注册
广播接收器可以自由地对自己感兴趣的广播进行注册,这样当有相应的广播发出时,广播接收器就能够收到该广播,并在内部处理相应的逻辑.注册广播的方式一般有两种,在代码中注册和在AndroidManifest. ...
- oracle监听器动态注册于静态注册的区别
2019独角兽企业重金招聘Python工程师标准>>> 1, oracle 10g 用netca方式建立的都默认为动态注册方式 2,如果想改为静态注册的方式则在listener.or ...
- Oracle Listener 动态注册 与 静态注册
一.什么是注册 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. 在 ...
最新文章
- 一文搞清楚QPS、TPS、并发用户数、吞吐量
- PHP安装wamp设置虚拟目录后,无法访问localhost问题
- STM32之独立版USB(Host)驱动+MSC+Fatfs移植
- 【快乐水题】1518. 换酒问题
- 拿 C# 搞函数式编程
- 大数据笔记-0907
- Base64编码简介及在java中的使用
- 3成失眠者放下手机才能睡 说中你了吗?
- Cisco AP-Sniffer模式空口抓包
- “.NET研究”理解.NET程序集的执行过程
- 优点三维逆向建模——消除实景三维应用后顾之忧
- 计算机网络:网络安全(电子邮件安全)
- 算法 | 八皇后问题
- nginx reopen
- 现在做Android开发有前途吗?Android面试题及解析
- 用canvas和原生JS写的一个flappy bird游戏
- 跟小博老师一起学习MyBatis ——MyBatis搭建运行环境
- 【正点原子FPGA连载】第十六章Petalinux设计流程实战摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南
- 阿里云、腾讯云、华为云、Ucloud(优刻得)、天翼云 的云服务器性能测试和价格对比
- LU分解完成利用节点电压法的简易电路求解程序(二)
热门文章
- matlab保存格式可以用cad打开文件,怎么将TXT文件导入CAD中生成图形
- java datetime 转换_如何实现Java日期时间格式转换
- 文件路径和模块路径、nodemon工具
- Linux 学会看日志文件处理问题
- 互联网晚报 | 2月22日 星期二 | 海底捞预告去年最高亏45亿元;奥迪一汽新能源汽车项目启动;英雄互娱更名“英雄游戏”...
- B端产品流程图一网打尽
- java连接zookeeper_java 学习笔记(四) java连接ZooKeeper
- 对接闪送_中国快递业加速出海,圆通上线“全球闪送”,与顺丰、申通抢市场...
- hive 删除分区_数据仓库工具hive面试题集锦(纯干货)
- python输出自己的名字_【Python】Python-用大写字母打印你的名字