【发布时间】:2016-07-28 08:45:32
【问题描述】:
为什么 Kotlin 会抱怨这个:
class MyActivity : Activity {
private var handler:Handler = Handler()
private var runnable: Runnable = Runnable {
/* Do something very important */
handler.postDelayed(this@MyActivity.runnable, 5000)
}
}
编译器抱怨 Line 中的 Variable 'runnable' must be initialized 是由处理程序再次发布的。
这在纯 Java 中确实有效:
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@Override
public void run() {
handler.postDelayed(runnable, 5000);
}
};
【问题讨论】:
-
你不担心它是一个周期性的参考吗?
-
我应该这样做吗?它背后的想法是这个 Runnable 应该每 5 秒执行一次。还是我遗漏了一些非常明显的东西?!