在自定义视图中,我需要在onDraw()内部执行一些额外的工作,当且仅当应用程序使View无效时;也就是说,我自己的代码在UI线程中称为invalidate()
,在非UI线程中称为postInvalidate()
。另一方面,如果因为系统使View无效而调用onDraw()
,我不希望执行额外的工作。
实现这一目标的最佳方法是什么?我的想法是简单地覆盖invalidate()
和postInvalidate()
并在这两者中设置一个标志,但如果有一个我可以覆盖的UI线程方法会更好。
有什么想法吗?
谢谢,Trev
答案 0 :(得分:4)
postInvalidate()最终调用invalidate(),因此您不需要同时覆盖它们。但是如果你覆盖invalidate(),系统将调用被覆盖的版本。