una studio para llamar llamadas llamada intent hacer directa boton action_call abrir java android multithreading gps intervals

java - studio - El método Android make se ejecuta cada X segundos(involucra gps y llamada al servidor)



hacer una llamada directa en android studio (2)

Tengo una aplicación de nicho que necesita enviar a un servidor su ubicación cada pocos segundos. (No se preocupe por la duración de la batería de un teléfono móvil). ¿Cómo puedo hacer que un hilo o algo se ejecute cada pocos segundos? Tengo un gpslistener pero el nombre de su subclase es "onlocationchanged" que parece que solo desea proporcionar información si la ubicación cambió. Necesitaré una ubicación actualizada que se envíe al servidor cada vez, aunque en un intervalo que defino

¿Cómo haría esto?

percepción apreciada


Coloque esto en onCreate of a service.

mTimer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { // What you want to do goes here } }, 0, REFRESH_TIME);

REFRESH_TIME es la frecuencia o el tiempo en milisegundos cuando la run repite.


No puedes simplemente pedirle a Android la posición actual. El GPS lleva tiempo y puede no estar disponible. Esto se afirma en esta publicación .

Lo que puede hacer es usar un temporizador como el mencionado por user500865, y luego solicitar la última ubicación conocida como esta

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 1, this); Location l = null; l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

Puede realizar un seguimiento de la última ubicación y hacer un poco de lógica si la nueva ubicación es diferente o la misma.

El método requestLocationUpdates tiene los siguientes parámetros:

minTime: el intervalo de tiempo mínimo para las notificaciones, en milisegundos. Este campo solo se utiliza como una sugerencia para ahorrar energía, y el tiempo real entre actualizaciones de ubicación puede ser mayor o menor que este valor.

minDistance: el intervalo de distancia mínimo para las notificaciones, en metros

Úselos para personalizar la frecuencia con la que desea obtener una actualización de ubicación