【发布时间】:2017-09-08 09:31:59
【问题描述】:
我有一个 Handler 和 Runnable,当 runnable 执行时我需要从我的处理程序中删除回调。
如果我这样做,就那样
private val _handler = Handler()
private val _longPressed: Runnable = Runnable {
_handler.removeCallbacks(_longPressed)
}
编译时错误发生错误UNINITIALIZED_VARIABLE
如果我将removeCallBacks方法移到函数中,错误就消失了,我很感兴趣,有什么区别?
private val _longPressed: Runnable = Runnable {
removeRunnable()
}
fun removeRunnable(){
_handler.removeCallbacks(_longPressed)
}
【问题讨论】:
-
你能发布
_handler变量的声明吗? -
好的,我已经更新了我的问题
-
@JemoMgebrishvili 我不太确定在 Runnable 下使用时尚未分配 _longPressed。但是在java中我们使用 this 这样尝试
-
同意@Raghavendra,使用
this应该可以解决问题。因为this里面Runnable基本上指的是_longPressed -
对不起,你是对的。如果您将 runnable 声明为
object : Runnable {...}并实现run方法,那么您可以使用this引用Runnable。