`

Android的Broadcast Receicer解析

阅读更多

Broadcast Receicer解析

Android中,事件监听由触发器组件实现。触发器组件均派生自Broadcast Receicer组件。需要集中实现onReceive()方法,并在XML文件中注册receiveronReceive()方法执行后,便结束了生命周期。

     触发器组件使用模式是接收到广播事件消息,针对事件类型做出简单的处理和判断,接着或利用Android的通知机制Notification将消息通知给用户,或通过Context.satrtActivity()函数展示界面相关组件与用户交互,或是利用Context.startService()调用对应的服务进行后续复杂的处理。

 

Android中当事件发生时,组件管理服务才会根据配置信息通知对应的组件触发器对象,执行构造组件的进程(节约系统开销,简化开发复杂性)

 

触发器组件的使用有冷热插拔2种。冷插拔是将组件触发器相关信息写在配置文件;热插拔通过代码中Context.registerReceiver()Context.unregisterReceiver()动态将触发器组件和监听事件绑定。界面组件Activity.onResume进行触发器组件注册,Activity.onPause注销对应的组件触发器。热插拔适用于处理与当前界面相关的事件。(时间变化、电量变化)

 

广播事件的发送:通过Intent对象实现,通过Context.sendBroadcastContext.sendOrderedBroadcast方法进行发送

广播模式有2种:通过Context.sendBroadcast是普通广播模式,所有注册了该广播事件的触发器都会得到事件通知,并发在各自应用程序执行。如开机事件。

有序广播模式,Context.sendOrderedBroadcast方法进行发送。监听该事件的触发器依照优先级排序,由高到低处理该事件。高优先级的触发器可以通过BroadcastReceiver.abortBroadcast终止低优先级的触发器继续处理。组件触发器可以通过BroadcastReceiver.setResult添加额外的数据,下一个触发器组件可以使用这些数据。如关机事件。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics