Commit dba912bc26d118a5cbba44226d4da797f8d5f873

Authored by 权海
1 parent dd3d3258

feat(ui):增加Isolate

import 'dart:async';
import 'dart:io';
import 'dart:developer' as developer;
import 'dart:isolate';
import 'dart:math' as math;
import 'package:flutter/foundation.dart';
... ... @@ -307,14 +308,20 @@ class HealthRawDataCoreService {
readChunkDays: readChunkDays,
);
final result = calculate(
hrvPoints: hrvPoints,
heartRatePoints: heartRatePoints,
restingHeartRatePoints: restingHeartRatePoints,
sleepIntervals: sleepIntervals,
workoutIntervals: workoutIntervals,
startTime: math.min(hrvStartTime, heartRateStartTime),
endTime: effectiveEndTime,
final capturedUserId = userId;
final capturedStartTime = math.min(hrvStartTime, heartRateStartTime);
final result = await Isolate.run(
() => calculate(
userId: capturedUserId,
hrvPoints: hrvPoints,
heartRatePoints: heartRatePoints,
restingHeartRatePoints: restingHeartRatePoints,
sleepIntervals: sleepIntervals,
workoutIntervals: workoutIntervals,
startTime: capturedStartTime,
endTime: effectiveEndTime,
),
debugName: 'HealthRawStressCalculator',
);
final newResult = result.copyWith(
hrvStressPoints: _filterNewHrvStressPoints(
... ... @@ -710,7 +717,8 @@ class HealthRawDataCoreService {
return '当前非 Debug 模式,未记录本地上传日志';
}
HealthRawStressCalculationResult calculate({
static HealthRawStressCalculationResult calculate({
required int userId,
required List<HealthKitRawDataPoint> hrvPoints,
required List<HealthKitRawDataPoint> heartRatePoints,
required List<HealthKitRawDataPoint> restingHeartRatePoints,
... ... @@ -721,7 +729,7 @@ class HealthRawDataCoreService {
required int startTime,
required int endTime,
}) {
return HealthRawStressCalculator(userId: _userId).calculate(
return HealthRawStressCalculator(userId: userId).calculate(
hrvPoints: hrvPoints,
heartRatePoints: heartRatePoints,
restingHeartRatePoints: restingHeartRatePoints,
... ...