有什么区别b / w invalidate()和postInvalidate()?

时间:2013-07-27 05:58:43

标签: android

我正在使用PostInvalidate(40,Rect);意味着在40毫秒之后它应该再次调用OnDraw()但是它似乎在调用onDraw()时需要超过40毫秒。

我应该在计时器或处理程序上使()无效。我有必要在40毫秒内调用它

任何建议

1 个答案:

答案 0 :(得分:0)

来自文档:

  

导致后续发生指定区域无效   循环通过事件循环。等待指定的时间。

这意味着系统将等待40毫秒,然后在事件循环的后续循环中,它将执行失效。如果您的事件周期较慢,则对失效的响应会很慢。

这意味着失效生效所需的时间受循环事件循环所需时间的限制。它永远不会在40毫秒内发生。无论Invalidate()工作的平均时间是多少,都需要花费更多时间+ 40毫秒(至少)。