CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: 9mm con ben 3 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 8 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 29 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 6 su 6
Discussione:

App Widget Configuration Activity e onUpdate

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Senior Droid L'avatar di monossido


    Registrato dal
    Jul 2009
    Località
    Padova
    Messaggi
    332

    Ringraziamenti
    11
    Ringraziato 17 volte in 14 Posts
    Predefinito

    App Widget Configuration Activity e onUpdate

    Non so se sia un'argomento abbastanza "avanzato" per questo forum ma credo di si

    Sto sbattendo la testa in un presunto bug molto fastidioso, presunto perchè ho trovato 2 ticket a riguardo ma è talmente stupido che mi pare strano non sia ancora stato sistemato...l'alternativa è che io assieme ad altri sbagliamo qualcosa.

    Spesso i widget appena vengono inseriti hanno bisogno di una pagina di settings dove configurare alcuni parametri fra cui la frequenza di aggiornamento gestita di l'AlarmManager

    La documentazione dice chiaramente conme impostare questa finestra di configurazione in modo che venga avviata all'inserimento del widget. Si dice anche come fare in modo che il widget eviti di partire se la configurazione viene abortita e soprattutto si dice chiaramente che l'onUpdate parte dopo che la configurazione avviene con successo e non prima!

    Tutto questo sembra non funzionare e ne sono testimoni questi 2 ticket che credo siano collegati

    Issue 3696 - android - sdk1.5 Widget onUpdate is called once before displaying configuration activity - Project Hosting on Google Code
    Issue 2539 - android - Unconfigured home screen widgets are left in limbo - Project Hosting on Google Code

    il primo parla dell'onUpdate che parte prima del dovuto e nel secondo si lamentano che se la configurazione viene annullata (o non c'è abbastanza spazio libero in home) il widget rimane nel limbo e continua a funzionare anche se non viene visualizzato
    Le due cose sono collegate perchè l'onUpdate viene eseguito prima di sapere se la configurazione è andata a buon fine o meno

    Ripeto mi sembra una cosa molto stupida tanto che forse sto sbagliando io qualcosa ma ho seguito passo passo quello che c'è scritto qui
    App Widgets | Android Developers
    www.lorenzobraghetto.com <-blog
    monossido at lorenzobraghetto.com <- jabber/mail
    http://twitter.com/monossido <-twitter

  2.  
  3. #2
    Senior Droid L'avatar di monossido


    Registrato dal
    Jul 2009
    Località
    Padova
    Messaggi
    332

    Ringraziamenti
    11
    Ringraziato 17 volte in 14 Posts
    Predefinito

    sembra essere un vero bug e un problema diffuso...lo reputo un pò assurdo

    ora purtroppo non posso provare ma credo che si possa usare un workaround del tipo: uso un valore booleano nei file xml delle preferenze e prima di far partire l'allarme in onUpdate controlo che questo valore sia su true
    al primo onUpdate sarà false, poi nel momento in cui l'utente effettua le configurazioni lo imposto a true e forzo l'esecuzione dell'onUpdate con updateAppWidget()

    l'unico dubbio è se è fattibile o meno l'ultima cosa...stasera proverò
    nel frattempo se avete qualche suggerimento ben venga...
    www.lorenzobraghetto.com <-blog
    monossido at lorenzobraghetto.com <- jabber/mail
    http://twitter.com/monossido <-twitter

  4. #3
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Si confermo anchio ho lo stesso problema. Per risolverlo ho usato il workaround di monossido e in pratica, siccome nella mia app ogni widget ha il suo sharedpreferences in xml.

    non faccio altro che settate "configured=true" quando l'activity di configurazione ha dato esito positivo.

    In questo modo risolvo anche il problemino del onupdate iniziale. ed eventuali widget lasciati nel limbo vengono lasciati li dove sono perchè al passaggio dell'onUpdate questo si accorge che non è stato configurao.

    Twitter @veke87

  5. #4
    Androidiano


    Registrato dal
    Nov 2009
    Località
    Sondrio
    Messaggi
    232

    Ringraziamenti
    24
    Ringraziato 9 volte in 8 Posts
    Predefinito

    confermo il comportamento bizzarro. Io pure ho fatto in modo simile a quanto detto da andrea e tutto funziona...

  6. #5
    Senior Droid L'avatar di monossido


    Registrato dal
    Jul 2009
    Località
    Padova
    Messaggi
    332

    Ringraziamenti
    11
    Ringraziato 17 volte in 14 Posts
    Predefinito

    ok il config=false e un if evitano che l'onUpdate faccia robe strane prima di aver terminato la configurazione ma poi?
    non trovo il modo di far ritornare il programma nell'onUpdate...

    EDIT:
    potrei creare un'ulteriore classe che estende Service e chiamarla subito dopo l'avvenuta configurazione con startService(), ma mi pare veramente un casino inutile...d'altra parte non riesco proprio a richiamare l'onUpdate
    RIEDIT: ho miparato che è meglio mettere meno codice possibile in onUpdate o simili
    Ultima modifica di monossido; 11-02-10 alle 00:16
    www.lorenzobraghetto.com <-blog
    monossido at lorenzobraghetto.com <- jabber/mail
    http://twitter.com/monossido <-twitter

  7. #6
    Androidiano


    Registrato dal
    May 2009
    Messaggi
    250

    Ringraziamenti
    2
    Ringraziato 30 volte in 23 Posts
    Predefinito

    per rilanciare l'update basta che mandi un broadcast intent....
    il problema invece è quando il widget non viene inserito perchè non c'è spazio nella home, in questo caso viene configurato correttamente ma poi sparisce

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy