Autore Topic: Handler impossibile fermarlo da widget  (Letto 816 volte)

Offline GuiZ

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    LG OPTIMUS ONE LP-500
  • Play Store ID:
    Geek-Blog.it
  • Sistema operativo:
    Ubuntu 10.10
Handler impossibile fermarlo da widget
« il: 11 Luglio 2011, 11:07:46 CEST »
0
Salve,
sto da diversi giorni su questo problema. Premetto che ho tentano prima con timer e poi con handler ma non riesco comunque a fermarli al delete del widget.


Creo un nuovo handler
Codice (Java): [Seleziona]
 
private Handler handler = new Handler();

    private Runnable runnable = new Runnable() {
        @Override
        public void run() {
                RunEdt();
                handler.postDelayed(this, 10000);

        }
     };

Nell update lo faccio partire per la prima volta

Codice (Java): [Seleziona]
handler.postDelayed(runnable, 100);
E nel onDelete cerco di fermarlo

Codice (Java): [Seleziona]
        public void onDeleted(Context context, int[] appWidgetIds) {
                handler.removeCallbacks(runnable);
        }

Nell onDelete ovviamente lo stop non riesce e se rimetto il widget i cicli si sovrappongono.....lo stesso vale per il timer ( il cancel non da segni di vita).... (
qualcuno ha qualche idea?


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Handler impossibile fermarlo da widget
« Risposta #1 il: 11 Luglio 2011, 11:14:12 CEST »
0
Non so come è strutturato il codice, ma che ne dici di mettere a false una variabile e condizionare sempre il postdelayed con la variabile stessa?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline GuiZ

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    LG OPTIMUS ONE LP-500
  • Play Store ID:
    Geek-Blog.it
  • Sistema operativo:
    Ubuntu 10.10
Re:Handler impossibile fermarlo da widget
« Risposta #2 il: 11 Luglio 2011, 11:20:48 CEST »
0
Si ci avevo pensato però vorrei capire la natura del problema dove risiede e sopratutto perchè non si riesce a stoppare ne l'handler ne il timer.



Offline GuiZ

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    LG OPTIMUS ONE LP-500
  • Play Store ID:
    Geek-Blog.it
  • Sistema operativo:
    Ubuntu 10.10
Re:Handler impossibile fermarlo da widget
« Risposta #3 il: 11 Luglio 2011, 11:34:44 CEST »
0
Ho provato anche con un bool mettendo a true e false ma è come se non la vedesse e lo esegue perchè lo vede semrpe a true.
 
Ho un warning nel debug
07-11 09:34:47.850: WARN/ActivityManager(52): finishReceiver called but none active

Offline bovello

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +2
    • Mostra profilo
    • Bovello
  • Dispositivo Android:
    San Francisco
  • Play Store ID:
    Bovello
  • Sistema operativo:
    Windows 7, Mac OS Snow Leopard
Re:Handler impossibile fermarlo da widget
« Risposta #4 il: 17 Luglio 2011, 16:22:39 CEST »
0
ma l'oggetto handler quando provi a stopparlo è istanziato? immagino di si, altrimenti avresti un'eccezione. ad ogni modo io metto sempre per sicurezza:
if(null!= handler)
{
handler.removeCallbacks(runnable);
}

inoltre il new Handler() dove lo fai? sei sicuro di lavorare sempe sullo stesso oggetto?
ciao,
Marco