Autore Topic: Gestire insiemi di TimerTask  (Letto 646 volte)

Offline AleoxFalco

  • Nuovo arrivato
  • *
  • Post: 27
  • Poi ci penso
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    APC 87-50
  • Sistema operativo:
    Windows 7
Gestire insiemi di TimerTask
« il: 29 Marzo 2013, 17:20:38 CET »
0
Ciao a tutti

Spero di trovare qui almeno un input per capire come affrontare il mio problema. Ho la necessità di tenere aperti più TimerTask. Ognuno di essi generano informazioni ogni 3 secondi, per un massimo di 5 volte, poi vengono distrutti. I TimerTask vengono istanziati in un servizio e vorrei tenerli "raggruppati" in una specie di lista. Riesco senza problemi a inserirli nella lista ma quando quest'ultimi vengono distrutti rimangono in essa. Ho bisogno di capire come distruggere questi TimerTask anche nella lista quando l'evento di distruzione è completamente gestito da loro stessi ( uso il metodo cancel() a tal proposito ).

Da qualche parte anni fa lessi ( e rin tin tin  :D) che un Thread non si potesse distruggere da solo ma solo tramite intervento esterno. Immagino che la classe TimerTask sia estesa da Thread ma non sono sicuro di ciò. A me interessa solo gestire questi TimerTask in modo da "indicizzarli" e poterli scorrere uno ad uno durante il loro ciclo di vita, per poter richiamare da loro altre informazioni e metodi.

Grazie infinite  :-*

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Gestire insiemi di TimerTask
« Risposta #1 il: 29 Marzo 2013, 19:15:10 CET »
0
Credo che potresti passare al TimerTask il riferimento alla lista. Quindi da dentro il task puoi rimuoverlo.
Pensando per esempio ad un ArrayList ti basterebbe fare list.remove(this).
Questo, di fatto, non comporta la distruzione del task, ma solo la sua rimozione dalla lista.
Postate il LogCat LogCat LogCat LogCat LogCat