Creating a Timer
class seems excessive for the use that you propose, not to mention that there is already a Timer
class built into Java. However, timers are best used for scheduling actions, not for observing how long they take.
Also, in the code you posted, you have super.run()
finish before you even start timing. At that point, there is nothing left for your timer to wait for, unless your download is happening on a different thread that you haven't told us about.
Instead, you could probably do something much simpler, like this:
public void run() {
long startTime = System.nanoTime();
super.run();
long endTime = System.nanoTime();
System.out.println("Download Time: " + (end - start) / 1.0e9 + " seconds");
}