Saltar para conteúdo


Foto
- - - - -

Buffer Reader


  • Por favor inicie sessão para responder
3 respostas a este tópico

#1 Galaxy

Galaxy

    Membro

  • Membros
  • PipPip
  • 66 mensagens

Mensagem publicada 19 September 2012 - 22:56

Boas pessoal,
estou a tentar fazer uma app que após o utilizador carregar num botão, chama um processo em background que acede a um site e lista o código fonte
Tudo funciona direito, à excepção de ser necessário carregar duas vezes no botão....
try {
	   URL url = null;
	   url = new URL("http://google.com"); 
	   Log.d("teste", "vai abrir url");
	   URLConnection conn = url.openConnection();
	   Log.d("teste", "abriu");
	   BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
	   String line="";
	   Log.d("teste", "vai fazer o while");
	   while ((line=reader.readLine()) != null) {
	    tv.append(line);
	   
	   }
	   Log.d("teste", "acabou de adicionar");
   }

No código atrás, quando se clica apenas uma vez no botão, o programa chega ao While e não avança. Fica lá "preso". Se carregar novamente, ele já completa.
Alguma razão lógica para isto?

#2 Driver

Driver

    Membro

  • Membros
  • PipPip
  • 51 mensagens

Mensagem publicada 20 September 2012 - 10:53

Experimenta utilizar o HttpURLConnection: http://developer.and...Connection.html

#3 Davidu

Davidu

    Novato

  • Membros
  • Pip
  • 4 mensagens
  • LocalizaçãoLisboa

Mensagem publicada 20 September 2012 - 10:54

Boas,

Já apanhei situações estranhas assim do género, normalmente a resolução passa por fazer clean ao projecto e recompilar novamente.
Se não funcionar, mostra-me o código que estás a usar para associar o evento click à chamada para o processo em background? E já agora para que versão do Android estás a desenvolver?
David

#4 Galaxy

Galaxy

    Membro

  • Membros
  • PipPip
  • 66 mensagens

Mensagem publicada 24 September 2012 - 14:17

Boas,
resolvi o problema de outra forma.
Apenas estou interessado no conteúdo que provem da página. Passei o conteúdo para uma string, e assim já está a funcionar.
Não percebi porque não surgia a informação do visor, mas o que importa é que ficou resolvido.

Obrigado.