¿Cuál es la diferencia entre ACTION_CANCEL y ACTION_UP en MotionEvent?

Quiero seguir el toque de un dedo en la pantalla. Entonces, lo que hice fue comenzar a grabar la posición cuandoMotionEvent disparadoresACTION_DOWN, pero ¿cómo sé cuándo finaliza la acción, enACTION_CANCEL oACTION_UP?

¿Cuál es la diferencia exacta entre ellos?