我有一个自定义视图,它本身包含多个视图。我已经做到了,当单击此容器视图中的一个视图时,它将运行一个“计时器”线程,该线程需要每秒更新一个 TextView,也在容器视图内。当我想每秒更新 TextView 时,就会出现我的问题。显然,这并不像我想象的那么容易。我像这样在我的容器视图中实现了 Runnable ,并在单击按钮以启动计时器时执行了线程:
public void run() {
while(runnning) {
// if one second has passed, update the Textview
}
}
我得到了典型的 cannot-touch-views-outside-hierarchy 异常,这基本上意味着它没有在 UI 线程上运行。我不想在post(Runnable)
这里使用,因为我不想一直等到线程结束才更新一秒钟。将它所在的整个 Activity 传递给自己运行对我来说也是不切实际的runOnUiThread(Runnable)
。那么有人可以告诉我如何去做这件事吗?如果有人需要澄清,请告诉我!