Interval

open class Interval @JvmOverloads() constructor(end: Long, period: Long, unit: TimeUnit, start: Long, initialDelay: Long) : Serializable, Closeable

创建一个轮询器

操作

  1. 开启 start 只有在闲置状态下才可以开始

  2. 停止 stop

  3. 暂停 pause

  4. 继续 resume

  5. 重置 reset 重置不会导致轮询器停止

  6. 开关 switch 开启|暂停切换

  7. 生命周期 life

函数回调: 允许多次订阅同一个轮询器

  1. 每个事件 subscribe

  2. 停止或者结束 finish

Parameters

end

结束值, -1 表示永远不结束

period

计时器间隔

unit

计时器单位

initialDelay

第一次事件的间隔时间, 默认0

start

开始值, 当start]比end值大, 且end不等于-1时, 即为倒计时, 反之正计时

Constructors

Interval
Link copied to clipboard
fun Interval(period: Long, unit: TimeUnit, initialDelay: Long = 0)
创建一个不会自动结束的轮询器/计时器
Interval
Link copied to clipboard
fun Interval(end: Long, period: Long, unit: TimeUnit, start: Long = 0, initialDelay: Long = 0)
结束值, -1 表示永远不结束

Functions

cancel
Link copied to clipboard
fun cancel()
取消 区别于stop并不会执行finish
close
Link copied to clipboard
open override fun close()
等于cancel
finish
Link copied to clipboard
fun finish(block: Interval.(Long) -> Unit): <ERROR CLASS>
轮询器完成时回调该函数
life
Link copied to clipboard
fun life(fragment: Fragment, lifeEvent: Lifecycle.Event = Lifecycle.Event.ON_DESTROY): Interval
自动在指定生命周期后取消cancel轮询器
fun life(lifecycleOwner: LifecycleOwner, lifeEvent: Lifecycle.Event = Lifecycle.Event.ON_DESTROY): <ERROR CLASS>
自动在指定生命周期后取消cancel轮询器
onlyResumed
Link copied to clipboard
fun onlyResumed(lifecycleOwner: LifecycleOwner): <ERROR CLASS>
当界面不可见时暂停pause, 当界面可见时继续resume, 当界面销毁时cancel轮询器
pause
Link copied to clipboard
fun pause()
暂停
reset
Link copied to clipboard
fun reset()
重置
resume
Link copied to clipboard
fun resume()
继续 要求轮询器为暂停状态IntervalStatus.STATE_PAUSE, 否则无效
start
Link copied to clipboard
fun start(): <ERROR CLASS>
开始 如果当前为暂停状态将重新开始轮询
stop
Link copied to clipboard
fun stop()
停止
subscribe
Link copied to clipboard
fun subscribe(block: Interval.(Long) -> Unit): <ERROR CLASS>
订阅轮询器 每次轮询器计时都会调用该回调函数 轮询器完成时会同时触发回调blockfinish
switch
Link copied to clipboard
fun switch()
切换轮询器开始或结束 假设轮询器为暂停IntervalStatus.STATE_PAUSE状态将继续运行resume

Properties

count
Link copied to clipboard
var count: Long
轮询器的计数
end
Link copied to clipboard
var end: Long
结束值, -1 表示永远不结束
state
Link copied to clipboard
var state: IntervalStatus
轮询器当前状态

Extensions

life
Link copied to clipboard
fun Interval.life(viewModel: ViewModel): <ERROR CLASS>
轮询器根据ViewModel生命周期自动取消