BroadcastReceiver学习笔记

1.在代码中注册与在AndroiManifest.xml注册的区别


(a)在代码中注册可以控制注册与注销的时间。比如在onCreate-onDestory, onStart-onStop, onResume-onPause里面去注册或者注销receiver。
在manifest.xml里面一经注册,那么receiver会一直运行,除非程序被删除。
比如希望接收到短信发来的广播,代码如下
<receiver android:name="MyBroadcastReceiver">
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>
(b)一般自己发送的广播可能过代码registerReceiver注册,接收系统的广播一般用<receiver>注册(c)手动注册资源消耗更少

2.由于ANR限制BroadcastReceiver的onReceive函数必须在10秒内完成,而且onReceive默认会在主线程中执行,所以BroadcastReceiver中不适合做一些耗时操作,对于耗时操作需要交给service处理,比如网络或数据库耗时操作、对话框的显示(因为现实时间可能超时,用Notification代替)。

BroadcastReceiver学习笔记

时间: 2024-10-31 18:46:51

BroadcastReceiver学习笔记的相关文章

Android学习笔记-Intent(一)

Intent对象在Android官方API这样描述:It is a passive data structure holding an abstract description of an operation to be performed. 它是一种数据结构,抽象描述一次将要被执行的操作,其作用是在程序运行过程中连接两个不同的组件. Intent机制的引入,是实现Android应用程序的组件间通信的一种消息机制,它允许你在应用程序的组件间传递 Intent 来执行动作和产生事件,组件可以是跨应

Android学习笔记(四六):互联网通信-文件下载

在Android 2.3引入了DownloadManager可以处理复杂的文件下载,包括检查用户是否有数据联系(WIFI或者移动数据),当用户从一个有数据连接的地方移动到无连接的地方(例如离开了wifi或者3G data的access point),确保设备在下载过程中保持awake状态.DownloadManager可以处理HTTP URLs,但是不能处理HTTPS(SSL) URLs. 设置下载文件条件许可 在这个例子,将学习通过DownloadManager从Internet下载文件,并存

十四、Android学习笔记_Android回调函数触发的几种方式 广播 静态对象

一.通过广播方式: 1.比如登录.假如下面这个方法是外界调用的,那么怎样在LoginActivity里面执行登录操作,成功之后在回调listener接口呢?如果是平常的类,可以通过构造函数将监听类对象传入即可.但是在Activity中不能传递监听对象,所以考虑使用广播来实现. public void login(final LoginOnClickListener listener) { Intent intent = new Intent(context, LoginActivity.clas

【安卓学习笔记1】安卓基本组件Activity,Service,BoradCastReceiver,ContentProvider简介

因为博主以前学习过安卓的一点知识,所以学习笔记和别人不太一样. 博主的学习参考书籍是疯狂android讲义第二版.本系列博客都是记录学习笔记的. 因为博主平时还要上班,所以也就晚上有时间看书,写博客. 博主坚持每天看一个小时的书,记录一下随笔心得. 希望能给大家带来帮助. =========================================================================== 安卓的基本组件 =============================

Android学习笔记(三四):再谈Intent(上)-一些知识

在Android学习笔记(七):多个Activity和Intent中,我们先在学会了如何使用intent在代码中唤起activity.此处作深一步地学习. 什么是Intent intent是对一个操作处理的抽象描述.context可以在使用startActivity(intent)来launch一个actvivity,就如我们在学习笔记(七)中的处理,也是最常用的方式,将activity在我们的应用中整合:可以在通过sentBroast(intent)来广播给任何有兴趣的BroadcastRec

Android学习笔记二

17. 在ContentProvider中定义的getType()方法是定义URI的内容类型. 18. SQLiteDatabase类中的insert/delete/update/query方法其实也挺好用的,我在EquipmentProvider类中做了实现 19. Android专门有个单元测试项目(Android Test Project),在这个项目中,可以新建一个继承AndroidTestCase类的具体测试类来单元测试某个功能.我新建了一个AndroidTestProject项目,在

Android学习笔记(十四)——自定义广播

//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 我们除了可以通过广播接收器来接收系统广播, 还可以在应用程序中发送自定义的广播.下面我们来分别试一试发送自定义的标准广播和有序广播. 一.标准广播: 1)在发送广播之前,我们还是需要先定义一个广播接收器来准备接收此广播才行: 1 public class MyBroadcastReceiver extends BroadcastReceiver { 2 @Override 3 public void onReceiv

【转】 Pro Android学习笔记(七五):HTTP服务(9):DownloadManager

目录(?)[-] 小例子 保存在哪里下载文件信息设置和读取 查看下载状态和取消下载 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 应用有时需要从web中下载一个大文件,并保存在本地,这个操作过程是标准的,因此在Android2.3引入了DownloadManager类.相关的学习也可以参考Android学习笔记(四六):互联网通信-文件下载. 小例子 先看一个小例子,如下图所示.lay

Android学习笔记-回顾计划

人最怕的是,没有方向! 1.楔子: 本人接触Andrjoid开发也有一年多了,期间在一家外包公司独立开发了五六个项目.虽谈不上大牛,但自认小有所成.平时没什么爱好,就喜欢看看技术博客,试验各种开源代码,写写学习笔记. 最近感觉有点陷入瓶颈了,进步甚慢,却又不知该如何进一步提升自己.对于开发中遇到的很多问题,虽有所领悟,然不够系统,一些小知识点,也常有遗漏.觉得是时候系统的反思一下自己的知识体系了,于是决定制定一个回顾计划,综合自己看的博客.书籍,以及自己的开发实践,对一些常用的知识点进行整理.