四大组件之Broadcast
2015/11/19 15:43:46
Broadcast的理解
- 系统广播接收器
- 利用intent-filter过滤action
- 可用作整个应用监听某状态的变化
示例
- 服务器下发新消息时,通知MainActivity更改UI
- 继承BroadcastReceiver
- 定义过滤的Action
- 添加回调接口
- 构造函数初始化接口
- 重写onReceive方法(调用接口的方法)
- 实现接口、动态注册接口(LocalBroadcastManager类)
- 在获取到服务器数据的地方发送广播
- 在ondestory里取消广播
Intent intent = new Intent();
intent.putExtra(....);
intent.setAction(Receiver定义的Action);
sendBroadcast(intent);
- 注册(在MainFest注册一下即可)
使用
private MsgUpdateReceiver msgReceiver @Override public void onCreate(Bundle savedInstanceState) { msgReceiver = new MsgUpdateReceiver(this); //实例化 IntentFilter filter = new IntentFilter(MsgUpdateReceiver.MSG_UPDATE);//设置过滤器 //利用LocalBroadcastManager调用其注册方法 LocalBroadcastManager.getInstance(getActivity()).registerReceiver(msgReceiver, filter); }
2015/12/8 17:00:41
Fragment里注册广播
- 不能在OnCreateView里面注册,要在onCreate方法里面注册
- 记得在ondestory方法里注销广播