Contents
  1. 1. 2015/11/19 15:43:46
    1. 1.1. Broadcast的理解
    2. 1.2. 示例
  2. 2. 2015/12/8 17:00:41
    1. 2.1. Fragment里注册广播

2015/11/19 15:43:46

Broadcast的理解

  • 系统广播接收器
  • 利用intent-filter过滤action
  • 可用作整个应用监听某状态的变化

示例

  • 服务器下发新消息时,通知MainActivity更改UI
  1. 继承BroadcastReceiver
  2. 定义过滤的Action
  3. 添加回调接口
  4. 构造函数初始化接口
  5. 重写onReceive方法(调用接口的方法)
  6. 实现接口、动态注册接口(LocalBroadcastManager类)
  7. 在获取到服务器数据的地方发送广播
  8. 在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方法里注销广播
Contents
  1. 1. 2015/11/19 15:43:46
    1. 1.1. Broadcast的理解
    2. 1.2. 示例
  2. 2. 2015/12/8 17:00:41
    1. 2.1. Fragment里注册广播