BroadcastReceiver 广播

2017-03-16  本文已影响22人  Lonie233

广播比较简单就不写代码了,写点知识点吧

1.广播的类型

2.广播的来源

3.广播接收器

四大组件之一,主要方法就是 onreceieve 方法,收到广播之后就会调用这个方法。
广播的注册分为动态注册和静态注册。
静态注册就是注册manifest文件里,像注册activity,service,contentprovider一样,同时最好设intent filter,因为你并不需要接受手机里所有的广播(系统的,自己的,别人的),设置里intent-filter之后,你就会只能收到你感兴趣的广播了。另外,静态广播不需要启动应用就能接受广播了,比如开机广播(国产厂商需要设置允许开机启动才行,所以国产手机实现开机启动很难。某些大厂的全家桶除外)
动态注册。同样需要继承实现broadcastReciver,然后需要在activity里new,然后调用registerReceiver方法注册广播,同时,需要在ondestory 方法里调用unregister方法。不然会崩溃(貌似)。动态广播需要启动应用直到注册了之后广播接收器才能接收到广播。

4. 发送广播

没啥意思,说白就是用intent,new intent 的时候setaction,这个action你还要注册到广播接受器里。然后调用sendbroadcast(Intent)方法,发送有序的广播sendOrderedBroadcast(),根据manifest里设置的优先级决定广播接收器的执行顺序。
对于接收同一个广播,在相同优先级的情况下:

5 本地广播

前面说的广播全部属于系统全局广播,发出的广播可以被任何应用接受并处理,也可以接受到其他应用发送的广播(action 对应上的)
使用本地广播机制发出的广播,只能在应用内被处理,同事也只能接受应用发出的广播。其实发送和接受的操作都一样,只是发起者不是activity 了,而是这个东西

private LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(getContext());

通过它注册的广播接收器,发送的广播就只能在应用内部传递了。
广播的话,差不多这个样子也就够用了,关于更多广播,参考如下
四大组件-广播
Android总结篇系列:Android广播机制

上一篇 下一篇

猜你喜欢

热点阅读