Skip to content

Commit e1f0173

Browse files
zhouhaoyuan2023liangjingkanji
authored andcommitted
fix: #2 修复pause后resume时的delay时间计算错误的问题
1 parent de435ea commit e1f0173

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

interval/src/main/java/com/drake/interval/Interval.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import kotlinx.coroutines.channels.ticker
3232
import java.io.Closeable
3333
import java.io.Serializable
3434
import java.util.concurrent.TimeUnit
35+
import kotlin.math.max
3536

3637
/**
3738
* 创建一个轮询器
@@ -170,7 +171,8 @@ open class Interval @JvmOverloads constructor(
170171
if (state != IntervalStatus.STATE_ACTIVE) return
171172
scope?.cancel()
172173
state = IntervalStatus.STATE_PAUSE
173-
delay = SystemClock.elapsedRealtime() - countTime
174+
// 一个计时单位的总时间减去距离上次计时已过的时间,等于resume时需要delay的时间
175+
delay = max(unit.toMillis(period) - (SystemClock.elapsedRealtime() - countTime), 0L)
174176
}
175177

176178
/**

0 commit comments

Comments
 (0)