Android应用开发中BroadcastReceiver的用法

本文解析自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

你可能感兴趣的:(Android应用开发中BroadcastReceiver的用法)