前言:多个并发线程操作UI界面时,容易导致线程安全问题。Android为了线程安全,并不允许我们在UI线程外操作UI。故很多时候我们做界面刷新都需要通过Handler来通知UI组件更新,Activity中UI组件中的信息用Handler来传递。学过redis的单线程模型,应该很好理解这一点,二者最大的共同点就是将消息都放到一个队列中,串行地的消费,从而保证线程安全。
- Handler原理简单示意

(如果想深入的了解的,推荐看《深入理解Android》一书) - 声明变量
private var runnable: Runnable? = null
private val myHandler: Handler = Handler()
- 常用写法
private fun handlerTimer() {
if (runnable != null) {
// 调用之前,切记检查,若不为空,移除runnable,以避免重复执行
myHandler.removeCallbacks(runnable!!)
}
runnable = Runnable {
// 自己的方法
addPage()
Log.e("===", "add page success.")
}
// 延迟3秒执行
myHandler.postDelayed(runnable!!, 3000)
}
总结:在调用出调用即可,延迟三秒执行一次即停止。
(如果错误,欢迎批评指正,请大佬轻喷)
版权声明:本文为weixin_44467766原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。