初始化
This commit is contained in:
30
lib/core/event/event_bus.dart
Normal file
30
lib/core/event/event_bus.dart
Normal file
@@ -0,0 +1,30 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'global_event.dart';
|
||||
|
||||
/// 全局事件总线
|
||||
class EventBus {
|
||||
EventBus._();
|
||||
|
||||
static final _instance = EventBus._();
|
||||
|
||||
factory EventBus() => _instance;
|
||||
|
||||
// StreamController,广播模式可以让多个地方监听
|
||||
final StreamController<GlobalEvent> _controller = StreamController.broadcast();
|
||||
|
||||
/// 发送事件
|
||||
void publish(GlobalEvent event) {
|
||||
_controller.add(event);
|
||||
}
|
||||
|
||||
/// 监听事件
|
||||
Stream<GlobalEvent> get stream => _controller.stream;
|
||||
|
||||
|
||||
|
||||
/// 关闭流(一般应用生命周期结束时调用)
|
||||
void dispose() {
|
||||
_controller.close();
|
||||
}
|
||||
}
|
||||
16
lib/core/event/global_event.dart
Normal file
16
lib/core/event/global_event.dart
Normal file
@@ -0,0 +1,16 @@
|
||||
import 'package:app/data/models/common/version_dto.dart';
|
||||
|
||||
///基类
|
||||
abstract class GlobalEvent {
|
||||
const GlobalEvent();
|
||||
}
|
||||
|
||||
|
||||
///重新登录
|
||||
class UnauthorizedEvent extends GlobalEvent {}
|
||||
|
||||
///版本更新
|
||||
class VersionUpdateEvent extends GlobalEvent {
|
||||
final VersionDto version;
|
||||
const VersionUpdateEvent(this.version);
|
||||
}
|
||||
Reference in New Issue
Block a user