如何使()另一个线程的视图无效?

时间:2013-09-05 13:30:07

标签: java android multithreading view invalidation

我有一些由Timer任务每秒更新一次的视图。他们不能自己invalidate(),因为“只有创建视图层次结构的原始线程才能触及其视图”。

有一个名为runOnUiThread的函数,但是我需要一个Activity来运行它。

我该如何解决这个问题?

编辑:这是postInvalidate()的用途吗?我如何保证失效和更新很快就会发生(如果UI线程不忙)?

1 个答案:

答案 0 :(得分:2)

1)

  

这是postInvalidate()的用途吗?

According to the Docs

  

使用此选项使非UI线程中的View无效。

invalidate()用于更新Views

上的UI Thread

2)

  

我如何确保失效和更新很快就会发生   (如果UI线程不忙)?

同样来自文档的同一部分

  

导致在事件循环的后续循环中发生无效

所以我想这取决于你对“很快”的定义。正如文档所说,它应该发生在下一个事件循环