Autore Topic: Aspettare risultato di onLocationChangend  (Letto 553 volte)

Offline EnzoBuono

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG g2
  • Sistema operativo:
    Windows 8
Aspettare risultato di onLocationChangend
« il: 24 Settembre 2014, 17:41:10 CEST »
0
Salve ragazzi,
vi espongo un mio dubbio. Ho seguito la guida per ottenere le coordinate del punto in cui mi trovo,
grazie al listner implementato va tutto ok. Il metodo onLocationChanged mi restituisce correttamente latitudine e longitudine. Il mio dubbio è questo:
ad un certo punto del codice invoco:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, myLocationListener);
che attiva il listner e rimane in ascolto per il GPS. fin qui tutto ok. Il mio problema è che quando parte l'applicazione bisogna tenere in considerazione un pò di tempo per agganciare il segnale affinche il metodo
onLocationChanged restituisca le coordinate attuali.
Ora io devo usare queste coordinate per alcuni calcoli. Supponiamo che i calcoli avvengano alla riga successiva, io dovrei essere sicuro che le coordinate siano già state aggiornate. Non c'è un modo per evitare di eseguire il codice seguente fino al momento che le coordinate siano state aggiornate?
Un pò come mettere l'attivity in pausa ad aspettare questo evento.

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Aspettare risultato di onLocationChangend
« Risposta #1 il: 26 Settembre 2014, 08:52:24 CEST »
0
...Potresti mettere il tutto in un AsyncTask, e nel doInBackground metti un ciclo while (location == null) e magari un timer per un timeout massimo. Nel postExecute passandogli la location fai ciò che devi fare.

Offline EnzoBuono

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG g2
  • Sistema operativo:
    Windows 8
Re:Aspettare risultato di onLocationChangend
« Risposta #2 il: 26 Settembre 2014, 14:27:20 CEST »
0
Si ci avevo pensato, però il ciclo while non mi sembrava elegante, ho optato per un'activity intermedia che mi calcola la posizione e alla fine richiama la classe che esegue i calcoli, funziona bene così. Anche la tua idea sembra interessante, grazie ci penserò :)

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Aspettare risultato di onLocationChangend
« Risposta #3 il: 27 Settembre 2014, 12:34:48 CEST »
0
Si in effetti il ciclo while non è un gran che. Io per fare cose simili uso anche un countdowntimer dove al ontick faccio delle verifiche e al on finish procedo in base ai risultati del ontick