Problemas com codigo de tempo de digitação

import java.util.TimerTask;
import java.util.Timer;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class TempoDigitacao
{
	int segundos = 0;
	public TempoDigitacao()
	{
		int intervalo = 1000;
		TimerTask task = new TimerTask()
		{
			public void run()
			{
				segundos++;
			}
		};
		Timer timer = new Timer();
		timer.schedule(task, 0, intervalo);
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = "";
		try
		{
			str = br.readLine();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		System.out.println("Você demorou " + segundos + " segundos para digitar " + str);
		timer.cancel();
	}
	public static void main(String[] args)
	{
		new TempoDigitacao();
	}
}

fiz o seguinte codigo para marcar o tempo que o usuaria leva pra digitar, só que o tempo dispara quando o app inicia. E eu quero que ele marque só quando o usuario começar a digitar no teclado.