我正在使用PostInvalidate(40,Rect);意味着在40毫秒之后它应该再次调用OnDraw()但是它似乎在调用onDraw()时需要超过40毫秒。
我应该在计时器或处理程序上使()无效。我有必要在40毫秒内调用它
任何建议
答案 0 :(得分:0)
来自文档:
导致后续发生指定区域无效 循环通过事件循环。等待指定的时间。
这意味着系统将等待40毫秒,然后在事件循环的后续循环中,它将执行失效。如果您的事件周期较慢,则对失效的响应会很慢。
这意味着失效生效所需的时间受循环事件循环所需时间的限制。它永远不会在40毫秒内发生。无论Invalidate()工作的平均时间是多少,都需要花费更多时间+ 40毫秒(至少)。