【发布时间】:2017-09-28 10:16:40
【问题描述】:
谁能看出这不起作用的任何原因?
override fun resetAnimations() {
Log.d("MainActivity", "start")
Handler().postDelayed( { reset()}, 1500)
Log.d("MainActivity", "end")
}
fun reset(){
Log.d("MainActivity", "reset")
}
我在我的活动中的某个任意位置调用它,但从未调用 reset() 方法。在日志中我只得到以下
D/MainActivity: start
它看起来像它在 postDelay 上的阻塞.. 即使我将值设置为 1 或将 postDelay 替换为姿势,也不起作用。
更新:
当我这样实现时,它可以工作;
private lateinit var handler : Handler
override fun onCreate(savedInstanceState: Bundle?) {
handler = Handler()
resetAnimations()
}
override fun resetAnimations() {
handler.postDelayed( { reset()}, 1500)
}
我认为问题与我从后台线程调用 resetAnimations() 并在后台线程上创建处理程序这一事实有关..
【问题讨论】:
-
可能你永远不会调用 resetAnimations
-
@crgarridos 在那里更新了你的问题。显然我在调用 resetAnimations!
-
那么你是从 mainThread 以外的另一个线程调用 resetAnimation 吗?
标签: java kotlin runnable android-handler android-looper