本文解析自Android API手册之BroadcastReceiver
1、broadcast 用 sendBroadcast() 发出。
2、broadcast 由 BroadcastReceiver 接收。
3、APP内部的broadcast: 用LocalBroadcastManager + BroadcastReceiver
4、BroadcastReceiver需要注册:动态注册方法是Context.registerReceiver(),静态注册方法是AndroidManifest.xml中的<receiver>
5、activity进入paused状态之后,不会收到broadcast,所以在onPause()/onResume()中register, unregister以节约系统资源
6、broadcast分两种:普通的、有序的
7、activity和broadcast中的intent是不一样的,不能混用
8、使用broadcast注意: Intent的action name是全局的,不要与其他name冲突;注册receiver之后,默认任何app都可以给他发broadcast;默认sendBroadcast(),任何程序都能接收
9、BroadcastReceiver对象只有在 BroadcastReceiver.onReceive() 期间才有效。该函数一旦返回,BroadcastReceiver就会失效,系统此刻可以杀死它所在的进程。这对onReceive()的设计有以下影响:不能异步操作、不要在onReceive()中显示对话框<<建议用 Notification>>、不要在onReceive()中绑定服务<<建议 startService()>>。
10、BroadcastReceiver是一个抽象类,只有一个抽象方法,onReceive()
经常一起用的API: BroadcastReceiver + Intent + intent filter + Service
用法小结
1、继承BroadcastReceiver,实现onReceive()
2、注册receiver
3、sendBroadcast()
4、注意一些权限、生命期之类的东西
原文:
http://developer.android.com/reference/android/content/BroadcastReceiver.html