Flutter

Flutter使用Stream进行消息通知

2021-05-07  本文已影响0人  李小轰
在Android中我们用广播,eventBus等方式来实现监听与消息传递。Flutter中我们用流(Stream)来实现同样的能力,代码如下:
//全局维护一个静态的stream
abstract class EventStreamController {
  //Message为流内的消息体,是一个自定义类
  static StreamController<Message> _streamNotice;
  static Stream<Message> get noticeStream {
    if (_streamNotice == null) {
      _streamNotice = StreamController<BucketNoticeMessage>.broadcast();
    }
    return _streamNotice.stream;
  }
  //提供外部调用发送消息
  static sendMessage(Message msg) {
    _streamNotice?.sink?.add(msg);
  }
}

//自定义消息体(泛型)
abstract class Message{}

注册监听消息
EventStreamController.noticeStream.listen((event) {
      if (event is Message) {
        //判断泛型,进行相应的操作
      }
    });
Flutter中对Stream的运用非常广泛,后续补充。
上一篇 下一篇

猜你喜欢

热点阅读