ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 9.4 BroadcastReceiver的工作过程 本节将介绍BroadcastReceiver的工作过程,主要包含两方面的内容,一个是广播的注册过程,另一个是广播的发送和接收过程。这里先简单回顾一下广播的使用方法,首先要定义广播接收者,只需要继承BroadcastReceiver并重写onReceive方法即可,下面是一个典型的广播接收者的实现: public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // onReceive函数不能做耗时的事情,参考值:10s以内 Log.d("scott", "on receive action=" + intent.getAction()); String action = intent.getAction(); // do some works } } 定义好了广播接收者,接着还需要注册广播接收者,注册分为两种方式,既可以在AndroidManifest文件中静态注册,也可以通过代码动态注册。 静态注册的示例如下: <receiver android:name=".MyReceiver" > <intent-filter> <action android:name="com.ryg.receiver.LAUNCH" /> </intent-filter> </receiver> 通过代码来动态注册广播也是很简单的,如下所示。需要注意的是,动态注册的广播需要在合适的时机进行解注册,解注册采用unregisterReceiver方法。 IntentFilter filter = new IntentFilter(); filter.addAction("com.ryg.receiver.LAUNCH"); registerReceiver(new MyReceiver(), filter); 前面两步都完成了以后,就可以通过send方法来发送广播了,如下所示。 Intent intent = new Intent(); intent.setAction("com.ryg.receiver.LAUNCH"); sendBroadcast(intent); 上面简单回顾了广播的使用方法,下面就开始分析广播的工作过程,首先分析广播的注册过程,接着再分析广播的发送和接收过程。