TimerTask vs Thread.sleep vs Handler postDelayed: ¿el más exacto para llamar a la función cada N milisegundos?

¿Cuál es la forma más precisa de llamar a una función cada N milisegundos?

Hilo con hilo hiloTimerTaskManejador con PostDelayed

Yo modifiquéeste ejemplo usando Thread.sleep y no es muy preciso.

Estoy desarrollando una aplicación de música que reproducirá sonidos a un BPM determinado. Entiendo que es imposible crear un metrónomo totalmente preciso y no necesito hacerlo, solo busco la mejor manera de hacerlo.

Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta