2013-07-27 2 views
0

Я использую PostInvalidate (40, Rect); означает, что после 40 миллисекунд он снова должен называть OnDraw(), но, похоже, он занимает более 40 миллисекунд при вызове onDraw().В чем разница b/w invalidate() и postInvalidate()?

Должен ли я аннулировать() это по таймеру или обработчику. Это необходимо для меня, чтобы назвать его в течение 40 милисекунд

Любые предложения

ответ

0

Из документации:

вызвать Invalidate указанной области должно произойти на последующем цикла через цикл обработки событий. Ожидает указанное количество времени.

Это означает, что система будет ждать 40 миллисекунд, а затем в следующем цикле цикла события будет действовать недействительность. Если у вас медленный цикл событий, вы получите медленный ответ на недействительность.

Это означает, что время, требуемое для вступления в силу недействительности, ограничено тем, сколько времени требуется для циклического прохождения цикла событий. Это никогда не произойдет через 40 миллисекунд. Какое бы среднее время, затрачиваемое на работу Invalidate(), потребуется на это время + 40 миллисекунд больше (по крайней мере).

Смежные вопросы