广播Broadcast

广播有两种类型:标准广播和有序广播。

标准广播是一种完全异步执行的广播,在广播发出后,所有的广播接收器几乎都会在同一时刻接收到这条广播信息,因此它们之间没有任何先后顺序可言。这种广播效率会比较高,但同时也意味着它是无法被截断的

有序广播是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播信息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。所以此时的广播接收器是有先后顺序的优先级高的广播接收器就可以先收到广播消息,并且前面的广播接收器还可以截断正在传递的广播,这样后面的广播接收器就无法收到广播消息了。

注册广播的方式一般有两种:在代码中注册(动态)

                                    在AndroidMainfest.xml中注册(静态)

一、动态注册

只需要新建一个类,继承自BroadcastReceiver,并重写父类的onReceiver()方法。当有广播到来时,onReceive()方法就会得到执行,
具体的逻辑就可以在这个方法中处理。

动态注册的广播接收器一定都要取消注册才行,可在onDestroy()方法中通过调用unregisterReceiver()方法来实现。

到时候我会放上我闹钟的广播例子。

动态注册的广播接收器可以自由地控制注册与注销,在灵活性方面有很大的优势,但是
它也存在着一个缺点,即必须要在程序启动之后才能接收到广播,因为注册的逻辑是写在
onCreate()方法中的。所以需要使用静态注册的方式来解决。

二、静态注册

原文地址:https://www.cnblogs.com/tutuskys/p/5045220.html