码迷,mamicode.com
首页 > 移动开发 > 详细

Android-BroadcastReceiver

时间:2015-07-02 12:19:10      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:android   broadcast   

Android-BroadcastReceiver

一 引入原因
1,在系统内通知和判定执行状态:开机了, TF卡插拔, 关机了
2,自定义执行状态:发消息提醒更新界面

二 接收哪些消息
1,常规消息
Normal broadcast,通过Content.sendBroadcast发送

2,排序消息
Ordered broadcast,通过Content.sendOlderedBroadcast发送

三 如何接收系统级的消息
1,继承BroadcastReceiver类重写一个类

2,重载onReceive回调方法,在主线程中实现,接收消息执行的时间必须小于10s(避免ANR),
如果接受操作比较复杂,就需要开启子线程

3,配置manifest文件权限,和

四 黏性的有序广播
广播是具有黏性的,与广播相关联的intent在广播完成后依然存在。
要发送具有黏性的有序广播,使用Content类的sendStickyOrderedBroadcast()方法

五 注册广播接收器
1,动态注册
在Activity中动态注册
在onResume()方法中调用registerReceiver()方法
在onPause()方法中调用unregisterReceiver()方法

2,静态注册
在manifest文件静态注册

<receiver android:name=".MyBroadcastReceiver">
            <intent-filter android:priority="10">//优先级
                <action android:name="com.chengzhi.action"/>
            </intent-filter>
        </receiver>

六 注意
1,在intent-filter中设置黏性广播的优先级android:priority=”10”,数值大的优先
系统消息是排序广播,优先级一般为负数

2,在onReceiver中可以退出广播abortBroadcast()

3,四大组件都需要需要在manifest文件中注册

4,系统启动的时候启动服务如何实现
接收系统消息,在回调onReceive方法中开启服务

5,同步与异步
同步,需要一步一步执行
异步,同时执行,发送消息

6,BroadcastReceiver宿主进程生命周期:
receiver到信息后会启动宿主进程,当返回后
如果没有其他交互,宿主进程状态变为空进程,因此如果要长期运行宿主进程
就startService

7,为何receiver接收到消息就会启动相应的进程:
在安装时放入系统哈希(根据intent排列)链表里面,
消息管理在分发的时候就在链表里面寻找所要分发的进程,然后启动它

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android-BroadcastReceiver

标签:android   broadcast   

原文地址:http://blog.csdn.net/qq_22075977/article/details/46722729

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!