invalidate() 方法是用来通知 View 进行重绘的,当调用该方法后,View 会立即调用 onDraw() 方法进行重绘。

'invalidate()' 方法不会立即执行重绘操作,而是将重绘操作添加到 UI 线程的消息队列中,待 UI 线程空闲时才会执行重绘操作。所以,如果在短时间内多次调用 'invalidate()' 方法,只会触发一次重绘操作。

'invalidate()' 方法本身不会立即耗费性能,因为它只是将重绘操作添加到消息队列中,并不会立即执行。但是,如果在短时间内频繁调用 'invalidate()' 方法,会导致不断触发重绘操作,从而影响性能。

为了避免频繁调用 'invalidate()' 方法,可以使用 'postInvalidate()' 方法替代。'postInvalidate()' 方法与 'invalidate()' 方法类似,但是可以在非 UI 线程中调用,它将重绘操作添加到 UI 线程的消息队列中,待 UI 线程空闲时执行重绘操作。这样可以避免在非 UI 线程中直接进行 UI 操作,提高应用的响应速度和性能。

Android invalidate() 方法详解:作用、性能及替代方案

原文地址: https://www.cveoy.top/t/topic/pgae 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录