diff --git a/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PiezoMonitoringView.kt b/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PiezoMonitoringView.kt index 64dae3c..3791d57 100644 --- a/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PiezoMonitoringView.kt +++ b/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PiezoMonitoringView.kt @@ -866,8 +866,12 @@ fun PiezoMonitoringView(appState: AppState) { // 이탈 후에도 GC 방해 + 이후 다시 진입 시 stale closure 가 새 상태를 오염시킬 위험. androidx.compose.runtime.DisposableEffect(Unit) { onDispose { - bleManager.imuCollector.onComplete = null - bleManager.piezoCollector.onMultiChannelComplete = null + // 2026-07-07 fix: imuCollector.onComplete null 정리 제거. Compose 가 + // fragment hidden→visible 전환 등에서 예상 못한 timing 으로 onDispose 를 + // 실행하는 경우 콜백이 세팅 직후 즉시 null 로 덮여 posture 표시 안 되는 + // 현상 발견. 다음 진입 시 LaunchedEffect(isConnected, isDemoMode) 가 자기 + // 콜백으로 다시 덮어쓰므로 stale 콜백은 실질 무해. + // piezoCollector 도 동일 이유로 정리 제거. bleManager.onConnectionStateChanged = null bleManager.onUnexpectedDisconnect = null bleManager.onReconnectionFailed = null