Java - Timer.cancel () v / s TimerTask.cancel ()

No meu aplicativo Android, executo um cronômetro e o cancelo em outro evento:

  class MyTimerTask extends TimerTask {
       override boolean cancel() {
         ...
       }

       override void run() {
         ...
       }
  }

  ...
  Timer t = new Timer();
  t.schedule(new MyTimerTask(),...)
  ...
  t.cancel();

eu estava esperandot.cancel() invocar automaticamenteMyTimerTaskécancel() método. Mas esse método nunca é invocado.

Gostaria de saber qual é exatamente a diferença entre esses dois métodos e por que o segundo método não é chamado automaticamente.

questionAnswers(1)

yourAnswerToTheQuestion