0

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

有一个runOnUiThread为此调用的函数,但我需要一个 Activity 来运行它。

我怎么解决这个问题?

编辑:这postInvalidate()是为了什么?我如何保证失效和更新很快就会发生(如果 UI 线程不忙)?

4

1 回答 1

2

1)

这是 postInvalidate() 的用途吗?

是的

根据文档

使用它来使来自非 UI 线程的视图无效。

invalidate()用于Views更新UI Thread

2)

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

也来自文档的同一部分

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

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

于 2013-09-05T13:43:53.920 回答