Leitura de arquivos - (Skipped Frames/Threads)

Pessoal, boa tarde.

Estou efetuando a leitura de arquivos em um aplicativo. E estou verificando a seguinte mensagem em meu LogCat:

02-23 17:29:17.079: I/Choreographer(10188): Skipped 45 frames! The application may be doing too much work on its main thread.

Compreendo que está bem explicito o que é a mensagem. Minha dúvida é porque isto ocorre e como poderia resolver e tirar essa carga da main thread então?

O que estou fazendo é o seguinte:

Ao tocar em um botão faço a execução de uma AsyncTask onde a mesma é responsável por procurar um arquivo no sdCard e se o mesmo existir ler e gravar os dados contidos nele na sua respectiva tabela SQLite.

[code]for (String arquivoImp: arquivosImportar) {

File f = getSdCardFile(dirImportacao, arquivoImp + ".txt");
			
	if (f.exists()) {
			
		BufferedReader buffR = new BufferedReader(new FileReader(f));
			
		while ((strLinha = buffR.readLine()) != null) {
			String strDadosCampos[] = strLinha.split("\\|");
					
			if(arquivoImp.equalsIgnoreCase(ClasseDB.TABLE_GRUPO)) {
						
				Grupo grupo = new Grupo();
				grupo.setId(Integer.parseInt(strDadosCampos[0]));
				grupo.setDescricao(strDadosCampos[1]);
						
				grupoDAO.insert(grupo);

}
}
}
}[/code]

Basicamente o processo resumido está assim. E então durante a leitura de cada linha do arquivo ele dispara pelo menos umas 5 mensagens referente ao Choreographer.

Gostaria de saber, se é possível otimizar esse processo ou o que seria mais apropriado fazer para evitar esse tipo de aviso. Vi alguns tutoriais na internet, que falavam que se não passasse de 100 frames, que eles ignoravam. Mas gostaria de entender.

Obrigado desde já.

Olá
Fecha o BufferedReader após o while.