Autore Topic: Refresh ListView ogni tot secondi  (Letto 132 volte)

Offline drthief

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Refresh ListView ogni tot secondi
« il: 06 Settembre 2010, 18:25:20 CEST »
0
Salve a tutti, spero di aver azzeccato la sezione  :-P

Ho un problemino... Effettuo il parsing di dati da una sorgente xml e la inserisco tramite un SimpleAdapter in una listView. Questi dati variano sul server continuamente e vorrei sempre tenere aggiornata la listView magari ri-effettuando il parsing ogni tot secondi.

C'è una soluzione a ciò?

Satuti  o_O

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 719
  • Respect: +169
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Nexus One - Wildfire - Magic
  • Market Developer Name:
    egsolutions
  • Sistema operativo:
    Ubuntu 10.10, Windows 7
Why?

Offline drthief

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Refresh ListView ogni tot secondi
« Risposta #2 il: 08 Settembre 2010, 10:31:57 CEST »
0
Risolto semplicemente andando a creare una classe
Codice: [Seleziona]
Runnable mUpdateTimeTask = new Runnable() {
        public void run() {
                Log.v("cicla ogni 2 sec");
                populateList(); //questa funzione mi fa il parsing e mi popola il listAdapter
                setListAdapter(adapter);
                mHandler.postDelayed(this, 2000);
        } 
 };

e dentro il metodo on create

Codice: [Seleziona]
mHandler.postDelayed(mUpdateTimeTask, 2000);

;-) graazie per l'input  :-P


Offline MarcoDuff

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 914
  • Respect: +150
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Refresh ListView ogni tot secondi
« Risposta #3 il: 08 Settembre 2010, 10:43:15 CEST »
0
Da come lo vedo scritto sembra un ciclo infinito... ricordati che devi manualmente stoppare l'handler nel metodo onStop dell'activity! ;)
Le mie Applicazioni Android | Il mio Blog

Io faccio parte del Gruppo AndDev.it LOGTFO, tu no? Allora GTFO!
Quando un utente fornisce una risposta utile si può ringraziarlo premendo il tasto  alla destra del titolo del post. (Ricky` rulez)

Offline drthief

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Refresh ListView ogni tot secondi
« Risposta #4 il: 08 Settembre 2010, 10:46:41 CEST »
0
Siccome a me non serve, serve proprio un ciclo infinito per poter visualizzare i dati sempre aggiornati, non l'ho implementato di proposito  O:-)

Ovviamente se a qualcuno serve adottare questa soluzione ma in modo da fare il refresh "manuale" o stoppare dopo un certo tempo allora meglio seguire le guide sopra  :D

Offline MarcoDuff

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 914
  • Respect: +150
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Refresh ListView ogni tot secondi
« Risposta #5 il: 08 Settembre 2010, 10:56:46 CEST »
0
Mi sono spiegato male...

Quando esci dall'applicazione o quando l'activity non è visibile tu continui ad aggiornarla!

Questo ti può causare due tipi di problemi:
  • Un NullPointerException visto che tenti di aggiornare una cosa che non esiste più;
  • Un utilizzo della batteria per una operazione di aggiornamento di una UI non visibile (quindi una operazione inutile).

Mi sta bene che aggiorni con un ciclo infinito i dati quando l'activity è visibile, ma mi sembra assurdo farlo mentre l'activity non è visibile o, peggio, quando sei uscito completamente dall'applicazione!
Le mie Applicazioni Android | Il mio Blog

Io faccio parte del Gruppo AndDev.it LOGTFO, tu no? Allora GTFO!
Quando un utente fornisce una risposta utile si può ringraziarlo premendo il tasto  alla destra del titolo del post. (Ricky` rulez)

Offline drthief

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Refresh ListView ogni tot secondi
« Risposta #6 il: 08 Settembre 2010, 11:03:17 CEST »
0
Si hai ragione, avevo dimenticato questo aspetto...

Già che ci siamo, non mi sono ancora documentato, ma c'è un modo per mandare notifiche dal server e riceverle sul dispositivo (le push notification di iPhone) o funzionano solo in locale?

Mi spiego meglio.... se esistono le notifiche push, allora posso stoppare il refresh e lasciare che sia il server ad avvisarmi quando sussiste una certa condizione, nel secondo caso invece devo invece sapere quando questa condizione è soddisfatta.  :-\

Offline Ricky`

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 2466
  • Respect: +339
    • Google+
    • rciovati
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    OS X Lion
Re:Refresh ListView ogni tot secondi
« Risposta #7 il: 08 Settembre 2010, 11:26:10 CEST »
0
Già che ci siamo, non mi sono ancora documentato, ma c'è un modo per mandare notifiche dal server e riceverle sul dispositivo (le push notification di iPhone) o funzionano solo in locale?

Si! Ma solo per android 2.2. Richiede inoltre che l'utente abbia un account Google.


Android Developers Blog: Android Cloud To Device Messaging