解决了渲染TCP推送数据,在切换功能后不稳定问题,保证了APP端的稳定性。

This commit is contained in:
2026-04-22 15:16:30 +08:00
parent 0402d2f3f5
commit e8a23559d4
9 changed files with 179 additions and 85 deletions

View File

@@ -15,7 +15,8 @@ import '../../../../core/di/injection.dart';
import '../../../../core/network/net_message_dispatcher.dart';
import '../../../../core/network/protocol_decoder.dart';
import '../../../devices/presentation/bloc/devices_cubit.dart';
import '../../../devices/presentation/bloc/device_status_cubit.dart';
import '../../../devices/presentation/bloc/device_status_bloc.dart';
import '../../../devices/presentation/bloc/device_status_event.dart';
import '../../../devices/presentation/bloc/device_status_state.dart';
// 配置:数据超时时间(5秒)
@@ -64,8 +65,9 @@ class _RunningStatusPageState extends State<RunningStatusPage> with WidgetsBindi
// 🔥 注册静态实例
_instance = this;
debugPrint('🚀 [RunningStatusPage] initState 被调用');
// 🔥 简化:直接重置状态,不需要重新初始化监听器
context.read<DeviceStatusCubit>().reset();
// 🔥 使用 DeviceStatusBloc
// context.read<DeviceStatusBloc>().add(DeviceStatusReset());
// 🔥 关键:立即启动超时计时器,如果5秒内没收到数据就显示"暂无数据"
_startDataTimeoutTimer();
@@ -841,7 +843,7 @@ class _RunningStatusPageState extends State<RunningStatusPage> with WidgetsBindi
body: CustomScrollView(
physics: const BouncingScrollPhysics(),
slivers: [
BlocBuilder<DeviceStatusCubit, DeviceStatusState>(
BlocBuilder<DeviceStatusBloc, DeviceStatusState>(
builder: (context, state) {
// 新增:超时状态下显示--
String qual = _isDataTimeout ? '--' : '--';
@@ -949,7 +951,7 @@ class _RunningStatusPageState extends State<RunningStatusPage> with WidgetsBindi
),
SliverToBoxAdapter(
child: BlocBuilder<DeviceStatusCubit, DeviceStatusState>(
child: BlocBuilder<DeviceStatusBloc, DeviceStatusState>(
builder: (context, state) {
debugPrint('🎨 [UI-Build] BlocBuilder 重建!当前状态类型:${state.runtimeType}');