Android广播

时间:2022-07-24 21:23:48
Android中的广播主要分为两类,标准广播和有序广播
 
标准广播:
一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此没有任何的先后顺序
这种广播的效率会比较高,但同时也意味着它是无法被截断的
有序广播:
一种同步执行的广播,在广播发出之后。同一时刻只会有一个广播接收器能够收到这条广播,当这个广播接收器的逻辑执行完毕后,广播才可以继续传递
优先级高的广播接收器可以先收到广播消息,并且前面的广播接收器还可以截断正在传递的广播,这样后面的广播接收器就无法收到广播消息
 
注册广播的方式一般有两种,在代码中注册和在AndroidMainfest中注册,在代码中注册被称为动态注册,在AndroidMainfest中注册被称为静态注册
动态注册的广播接收器一定都要取消注册才行,一般是在onDestory()方法中通过调用unregisterReceiver()方法来实现的
 
不要在onReceive()方法中添加过多的逻辑或者进行任何的耗时操作,因为在广播接收器中是不允许开启线程的,当onReceive()方法运行了较长时间而没有结束时,程序就会报错
 
动态注册的广播接收器可以*地控制注册与注销,在灵活性方面有很大的优势,但是也存在着一个缺点
必须在程序启动之后才能接收广播
 
从一个activity向另外一个activity用intent传递数据的时候,另外一个activity可以用onnewIntent()来接收,其他的很麻烦