¿Cuál es el enfoque más eficiente con la batería de usar LocationClient para obtener actualizaciones periódicamente?

Estoy pensando en tener dos alarmas separadas para recopilar los datos de ubicación de un usuario cada hora, una que se dispara cada 59 minutos para "conectar" al cliente y una segunda para obtener la ubicación y luego desconectar al cliente.

En cuanto a la duración de la batería, ¿hay algo más que deba considerar si obtener la ubicación del usuario es el principal gasto de la aplicación? O, ¿hay un enfoque diferente para tener dos alarmas? Originalmente solo tenía una sola alarma, pero al realizar una comprobación de conexión (! MLocationClient.isConnected), el cliente no tiene tiempo suficiente para conectarse.

Gracias por su comprensión.

Las dos alarmas sonarían algo como esto:

private int PERIODIC_UPDATE = 60000*60;  //gets location and disconnects every hour
private int PERIODIC_RECONNECTION_UPDATE = 60000*59;  //connects 1 minute before getLocation call

    Timer toReconnect = new Timer();
    toReconnect.schedule(new TimerTask() {

        @Override
        public void run() {
            mLocationClient.connect();
        }
    }, 5000, PERIODIC_RECONNECTION_UPDATE);

    Timer theTimer = new Timer(); 
    theTimer.schedule(new TimerTask(){
        @Override
        public void run() {
            try {
                if(!mLocationClient.isConnected()) {
                    mLocationClient.connect();
                    //This will not have much affect because cannot so quickly, will remove. 
                }

                Location theLocation = mLocationClient.getLastLocation();
                if(theLocation!=null) {
                    checkPostLocation(theLocation); 

                    mLocationClient.disconnect();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }   
        }}, 5000, PERIODIC_UPDATE);

Respuestas a la pregunta(2)

Su respuesta a la pregunta