Autore Topic: Invio Dati ad url  (Letto 471 volte)

Offline boyseez

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • Github
    • Google+
    • boyseez
    • @GiuseppeRaddato
    • Mostra profilo
  • Dispositivo Android:
    Padfone 2
  • Sistema operativo:
    windows 8.1
Invio Dati ad url
« il: 25 Luglio 2013, 19:57:24 CEST »
0
salve ho un piccolo problema con un applicazione che sto creando e sto fermo su 2 punti focali di questa app e poichè da questo forum ho già risolto in passato parecchi dubbi grazie ai vostri topic speriamo che risolvete anche il mio  :-) :-)

1-la mia app dovrebbe inviare la posizione ad un URL ogni 5 minuti. la parte dell'invio è pronta e perfettamente funzionante come faccio a far eseguire quel metodo ogni 5 minuti?
2-il codice non dovrebbe andare avanti fino a quando non ho le cordinate del gps

Grazie mille a tutti

PS: qui sotto posto il codice della classe


Codice (Java): [Seleziona]
public class service_autoRun extends Service {

        private String elementMovi = "lbl_movi";
        private static final String TAG = "MyService";
        private LocationManager lManager;
        private LocationListener lListener;
        private Location location;

        private String url_str;

        @Override
        public IBinder onBind(Intent intent) {
                return null;
        }

       
        @Override
        public void onStart(Intent intent, int startid) {
//la parte di codice per la temporizazzione
        }

        private void sendPosition() {
                String id = SharedPerformance
                                .updatePreferencesData(getApplicationContext());

                getCurrentLocation();

                if (location != null) {
                        lManager.removeUpdates(lListener);
                        url_str = "http:ricevocoordinate.aspx?"
                                        + "operatore_id=" + id + "&lat=" + location.getLatitude()
                                        + "&lng=" + location.getLongitude() + "&alt="
                                        + location.getAltitude() + "&precisione="
                                        + location.getAccuracy();
                        try {

                                HtmlParser hp = new HtmlParser(url_str.toLowerCase());
                                hp.StampaClasse(elementMovi);

                        } catch (Exception e) {
                                Log.e("ErroreParsing", e.toString());
                        }
                } else {
                        // fai qualcosa
                }

        }

        private void getCurrentLocation() {

                lManager = (LocationManager) this
                                .getSystemService(Context.LOCATION_SERVICE);
                lListener = new LocationListener() {

                        @Override
                        public void onStatusChanged(String provider, int status,
                                        Bundle extras) {
                                // TODO Auto-generated method stub
                        }

                        @Override
                        public void onProviderEnabled(String provider) {
                                // TODO Auto-generated method stub
                        }

                        @Override
                        public void onProviderDisabled(String provider) {
                                // TODO Auto-generated method stub
                        }

                        @Override
                        public void onLocationChanged(Location loc) {
                                location = loc;
                        }
                };
                lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,lListener);
        }

}

GRAZIE ANCORA SIETE LA MIA ULTIMA SPERANZA  :-( :-( :-( :-(
spero di esserti stato utile
Boyseez :-)

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Invio Dati ad url
« Risposta #1 il: 26 Luglio 2013, 09:09:07 CEST »
0
Scusa non ho il tempo di scrivere il codice. Ma qui sul foro c'è un tutorial su come far ripetere un azione ogni tot tempo, sfruttando gli handler (praticamente un handler che si richiama dopo tot millisecondi)
O in alternativa puoi utilizzare gli allarm manager
Non ricordo perchè ma il wait() del thread è sconsigliato su android (e a me francamente funziona male.. tipo messo in un for, prima esegue il for tutte le 5 volte, e poi richiama il wait 5 volte di seguito)

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Invio Dati ad url
« Risposta #2 il: 26 Luglio 2013, 11:03:02 CEST »
0
Prova con un contatore

Codice (Java): [Seleziona]
void contatore(){
        //CONTATORE
       
        cdt2 = new CountDownTimer(4000,2000){
                @Override
               
                public void onFinish() {
                //Cosa fare quando finisce
                       
                       
                }
                @Override
                public void onTick(long millisUntilFinished) {
                //cosa fare ad ogni passaggio
                       
                }
                }.start();
       
               
    }
   
    void contatorecombattimentoavversariostop(){
        cdt2.cancel();
    }

4000 sono i millisecondi di durata del contatore
2000 gli intervalli

quindi questo contatore eseguira 2 volte qualcosa

se vuoi puoi mettere lo stesso numero e fai eseguire cio che vuoi alla fine e richiami il contatore cosi rimane infinito.
Se richiami il contatore ricordati di fermarlo quando non ti serve piu perche se no va avanti anche chiusa l' app