El GPS no se puede ejecutar dentro de TimerTask

Estoy tratando de escribir una aplicación para Android que adquiera una señal de GPS en un intervalo de tiempo fijo, por ejemplo, cada 1 minuto. Dado que la función requestLocationUpdate no implementa exactamente eso, intenté usar la tarea para lograrlo.

public class getGPS extends TimerTask{
     public void run(){
        System.out.println("Running a GPS task");
        locHandler = new locationUpdateHandler();    


        myManager.requestLocationUpdates(provider, 60000, 0, locHandler);


     }
 }


public void LoadCoords(){

     Timer timer = new Timer();
     timer.scheduleAtFixedRate(new getGPS(), 0, 60000);
}

Sin embargo, por lo que he visto, requestLocationUpdates funcionaría bien si lo pongo dentro de LoadCoords (), pero no se ejecutaría si lo pongo dentro de TimerTask (es decir, no hay un icono verde en la barra de tareas para mostrar que el GPS está buscando un reparar).

¿Alguien puede sugerir un enfoque alternativo o un pseudocódigo, o corregir mi error si lo hay? Gracias de antemano.

preguntado el 09 de enero de 11 a las 04:01

1 Respuestas

A este tenor, doctor dice: El hilo de llamada debe ser un hilo de Looper, como el hilo principal de la actividad de llamada. En otras palabras, deberías llamar myManager.requestLocationUpdates(provider, 60000, 0, locHandler); desde un hilo principal de la aplicación de interfaz de usuario. En tu caso eso no funciona desde el TimerTask, porque TimerTasks está siendo ejecutado por Timer en un hilo separado.

Siga nuestro Artículo de enhebrado indoloro para encontrar la mejor solución de adaptación.

Respondido el 09 de enero de 11 a las 14:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.