BoradcastReceiver是安卓系统的四大组件之一,这种组件本质上一种全局监听器,可用于监听全局的广播消息。主要接受系统发出或用户开发的程序所发出的Broadcast Intent。与启动activity和service类似
启动BroadcastReceiver需要2步
创建BroadcastReceiver的Intent
Context的sendBroadcast()或sendOrderedBroadcast()方法来启动指定的BroadcastReceiver。
注册BroadcastReceiver有两种方式
代码中指定
IntentFilter intentFilter = new IntentFilter("android.intent.action.test");
MyBroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();
registerReceiver(myBroadcastReceiver, intentFilter);
AndroidManifest中定义
<receiver android:name=".receiver.MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.test"></action>
</intent-filter>
</receiver>
当系统Broadcast发生后,对应接收器会被实例化,onReceive()会被启动执行。
注意 onReceive()方法不能在10s钟执行完,系统会抛出异常。因此不能在该方法执行耗时的操作。
发送广播
只需调用context的sendBroadcast(Intent intent)
如:
Intent intent = new Intent();
intent.setAction("android.intent.action.test");
sendBroadcast(intent);
还可以在Intent中添加消息以达到传递信息的目的
intent.putExtra("msg","I am message");
Receiver中可以这样取用
@Override
public void onReceive(Context context, Intent intent) {
String msg = intent.getStringExtra("msg");
}
尊重作者,转载请注明出处!
版权申明:本文版权归作者所有,未经授权,任何单位或个人不得以任何形式转载、摘编或利用其它方式使用本博客内容。作者保留追究相关法律责任的权利。如需使用博客内容,请与作者联系获得授权。感谢对本文的尊重与支持。
免责声明:本网站所载内容仅供参考,不构成任何专业建议。用户基于本网站内容作出的决策,风险自担。对于因使用本网站内容而产生的任何直接或间接损失,本网站不承担任何责任。请用户审慎判断,理性使用。