Android-BroadcastReceiver 如何工作的?

Android-BroadcastReceiver 如何工作的?

想挽留 发布于 2017-07-09 字数 286 浏览 1180 回复 2

我在程序中注册一个检测开机的事件时候,每当开机的时候,receiver会自动接受到这个事件。
我很奇怪的是android系统是如何知道我的程序中监听这个事件,他是通过什么文件获得的?是不是所有的继承自BroadcastReceiver的类都是在内存中,每当接受这个事件就会被运行?

感谢大家指点迷津。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偏爱自由 2017-09-30 2 楼

注册了BroadcastReceiver,系统会将该BroadcastReceiver加入队列中去,这是由系统处理的,你所有的action都会在队列里面检测时候满足某一个BroadcastReceiver,然后执行相应的动作。它和handler的直接区别就是BroadcastReceiver这种方式是解耦合的,不需要知道是哪个发送来的action。可以用比较直观的说法来表示就是,类似UDP操作,一个只管发送,一个只管接收。

虐人心 2017-07-30 1 楼

在启动Activity的时候 系统会检查action 当你的Activity 注册了某个action的时候,系统会将该activity 加入到某个action的队列中去。 当系统广播某个action的时候,就会根据该队列发送广播消息。