【发布时间】:2017-08-01 15:14:05
【问题描述】:
我正在尝试以不同的速度闪烁摄像头。
为此,我使用搜索栏来更改闪烁速度。
当我第一次更改 seekbar 的值时,它开始闪烁
private fun startFlashLightBlink(context: Context,blinkSpeed: Int) {
isBlinkFlashLight=true
flashLightBlinkThread = Thread{
Looper.prepare()
while (isBlinkFlashLight){
val blinkInterval:Long=blinkSpeed*100L
//getMainLooper() handler is associated "with the Looper for the current thread" ... which is currently the main(UI) thread
val handler = Handler()
var runnable:Runnable = Runnable{
toggleFlashLight()
}
handler.postDelayed(runnable,blinkInterval)
}
Looper.loop()
}
flashLightBlinkThread?.start()
}
但它冻结了主 UI,所以现在我无法使用 seekbar 更改值并收到 ANR 消息。 我该怎么办?我不能使用异步任务。 服务也不是一个好的选择。我认为。
【问题讨论】:
标签: android multithreading kotlin freeze