Android 用线程池实现一个简单的任务队列(Kotlin)
关于线程池,Kotlin和java的使用方式一样
在Android中,很多人喜欢用Handler的postDelayed() 去实现延时任务.
要使用postDelayed(),去实现延时任务队列,就不可避免要使用递归.
但是这样做,代码的简洁性,和书写的简易,就远不如使用线程池.
使用线程池的简单程度:
private val mThreadPool : ScheduledExecutorService? = null
private val mThreadTime = 150 //任务间隔! 毫秒
fun writeData() {
if (mThreadPool == null) {
mThreadPool = Executors.newSingleThreadScheduledExecutor()
}
mThreadPool?.schedule({ //添加任务
}, mThreadTime.toLong(), TimeUnit.MILLISECONDS) //延时时长,时间单位
}
//使用完线程池别忘记关闭
mThreadPool.shutdown()