【发布时间】:2020-01-10 13:41:50
【问题描述】:
当startTimer方法被调用时,函数showSnackBarInfo()会在lambda中运行多次:
private var timer: CountDownTimer? = null
private val handler = Handler(Looper.getMainLooper())
private val timerAction = Runnable { showSnackBarInfo() }
var timerDuration = TimeUnit.SECONDS.toMillis(10)
fun showSnackBarInfo() {
Log.d("some", "showSnackBarInfo")
}
fun startTimer() {
handler.removeCallbacks(timerAction)
handler.postDelayed(timerAction, timerDuration)
}
fun cancelTimer() = handler.removeCallbacks(timerAction)
【问题讨论】:
-
你从哪里调用它?
-
@vilpe89 来自我的活动
-
您确定只调用一次吗,请贴出调用码
-
@mightyWOZ 我打了两次电话,但在两种不同的情况下。 gist.github.com/mnewlive/4e1a2f6cf2b06c8c46b348b9106c1a2d
标签: android kotlin lambda handler