Если у вас есть таймер, вам не нужно и не нужно делать недействительными в onDraw. Инвалидирование в onDraw является логически странным и приведет к плохим результатам - оно либо будет проигнорировано, либо вызовет немедленную перерисовку. Ни то, ни другое не требуется.
Кроме того, вы не можете сделать недействительным в теме, вам нужно использовать postInvalidate. И ваш поток неверен - либо не используйте поток, используйте Runnable и отправьте его в обработчик, либо поток должен бесконечно l oop, а не возвращаться. Желательно, во-первых, нет никакой причины иметь здесь нить.