
Fazer Refresh Listactivity
#1
Mensagem publicada 19 July 2012 - 14:51
esta é a minha classe main:
public class main extends ListActivity{
}
Qual a solução?
cumps,
Luís Cruz
#3
Mensagem publicada 19 July 2012 - 15:14
#4
Mensagem publicada 19 July 2012 - 15:18
//quando a Activity main receber o foco novamente abre-se novamente a conexão
lContaoDAO.open();
super.onresume();
autoUpdate = new Timer();
autoUpdate.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
String Text2 = "Entrei no tempo: ";
Toast.makeText( getApplicationContext(),
Text2,
Toast.LENGTH_SHORT ).show();
areagps();
adapter.notifyDataSetChanged();
lContaoDAO.Consultar();
}
areagps() - faz cálculos de coordenadas
lContaoDAO.Consultar(); - faz o call para a classe onde está a query.
basta só meter adapter.notifyDataSetChanged();
na função run()???
cumps,
Luís Cruz
#5
Mensagem publicada 22 July 2012 - 17:57
Antes de mais nada aconselho-te a utilizar um AsyncTask, uma vez que te torna o código mais "limpo" e utilizares o AlarmManager para agendares AutoUpdates. Para isso creio que deves tornar o areagps() num StartedService para poderes utilizar um Intent para dispoletares esse processo, desta forma as tuas Activities ficam com menos código de lógica aplicacional.
Para actualizares os dados pedidos ao Serviço, podes usar um BroadcastReceiver feito por ti. O Serviço após um cálculo de coordenadas, enviava um Broadcast ( LocalBroadcast de preferência ) para o Processo e no onReceive() recebes um Intent com o resultado em que podes actualizar os dados do adaptador e dispoletar a actualização da UI ( notifyDataSetChanged() ).
Cumps
Driver
#6
Mensagem publicada 22 July 2012 - 20:56

O serviço usa-se para fazer coisas quando a aplicação não está aberta. Se é só para fazer refresh quando a aplicação está aberta, o AsyncTask chega.
#7
Mensagem publicada 22 July 2012 - 22:13
Epa, cálculo de coordenadas de GPS tipicamente é algo demoroso, um Serviço era mais adequado para isso. Até para poderes utilizar o PendingIntent() no AlarmManager para agendares AutoUpdate.
#8
Mensagem publicada 22 July 2012 - 23:05
Não...Boas,
Epa, cálculo de coordenadas de GPS tipicamente é algo demoroso, um Serviço era mais adequado para isso. Até para poderes utilizar o PendingIntent() no AlarmManager para agendares AutoUpdate.

#9
Mensagem publicada 23 July 2012 - 12:15
respondendo ao criador do topico, não basta apenas chamares o notifyDataSetChanged(), se o teu adapter for costumizavel por ti tens de fazer a devidas alterações para esse metodo ser chamado, se estiveres a usar um ArrayAdapter do android, basta apenas fazer esse notify, que a lista é actualizada.
#10
Mensagem publicada 23 July 2012 - 14:11
#11
Mensagem publicada 23 July 2012 - 14:50
Sim, com o Adapter para DBs SQLite também é "automática". Qualquer coisa custumizada, já tem que se proceder às devidas alterações... Eu só indiquei o caminhoViva,
respondendo ao criador do topico, não basta apenas chamares o notifyDataSetChanged(), se o teu adapter for costumizavel por ti tens de fazer a devidas alterações para esse metodo ser chamado, se estiveres a usar um ArrayAdapter do android, basta apenas fazer esse notify, que a lista é actualizada.

Se poderes dizer como resolveste para poder servir como referencia para futuras dúvidas parecidas ou iguais a esta, agradecia.o problema foi resolvido, obrigado!