This is probably a bit of a confused noob question but.....

When (or how) does the paint function get called for the active Canvas ? Is it synced to some sort of vsync or called a set number of times a second, or does the painting thread just get a proportion of the CPU time ?

Basically I'm trying to understand how my games run and paint functions should be synced with each other and have the game running at full speed.

Obviously you only want the game to do one update loop for each paint loop, does calling serviceRepaints() achieve this ie yield the current run thread and cause the paint function to be called immediately or does it sit around and wait for the paint function to do it's thing at it's own pace.