Звоните invalidate()
только если ваши данные изменились и должны быть перерисованы.Вы обычно не делаете это в onDraw()
, потому что в этот момент вы рисуете свои текущие данные, а не меняете их.(В некоторых случаях вы можете захотеть сделать это, например, для запуска анимации, но, как правило, я бы рекомендовал вместо этого использовать задержанное сообщение для управления собственным временем обновления.)