¿Debería conectarse y desconectarse de Google Play Services en cada actividad?
Estoy escribiendo una aplicación que necesita un cliente de ubicación conectado en todas las actividades. ¿Cómo gestionar el estado del cliente?
Quiero llamar a mLocationClient.connect()
sólo una vez para evitar molestias, y debería ser capaz de eliminar las actualizaciones de ubicación / desconectar cuando la aplicación se detiene.
- API de geocodificación de Android BroadcastReceiver no activado
- DeadObjectException en GMS :: LocationClient (Android)
- Do Geofences permanece activo en android después de reiniciar el dispositivo
- LocationClient reconecta automáticamente en `onDisconnect`
- ¿Existe una alternativa al Cliente de ubicación (API de Google Play)?
¿Cómo puedo mantener el cliente de ubicación conectado en todas las actividades, suponiendo que he conectado a él en la pantalla de presentación Activity
?
Otra pregunta que surge aquí es, cuando reanudo la aplicación en pausa (no recreación), la aplicación no se iniciará con la pantalla de bienvenida. ¿Cómo puedo mantener la conexión en este caso?
Gracias por adelantado.
- API de ubicación de Google: solicita actualizaciones de ubicación con intención pendiente?
- Hacer que Android Geofences permanezca activo hasta que se haya eliminado / caducado o solo hasta que se inicie mi PendingIntent
- GetTriggeringGeofences y getGeofenceTransition de LocationServices
- LocalizaciónClient - Mock Locations
- OnLocationChanged no ha llamado a algunos dispositivos
- Comprobación del estado del GPS con Google Play Services
- Android Fused Location API - cómo utilizar PRIORITY_BALANCED_POWER_ACCURACY y PRIORITY_HIGH_ACCURACY en una aplicación?
- No se puede resolver el símbolo 'LocationClient' en Android Studio
Lo que necesitas es un servicio vinculado : estos servicios solo están disponibles mientras un cliente (como una de tus actividades) está conectado a él. Esto le permite tener un estado compartido (un solo cliente de ubicación conectado) al mismo tiempo que asegura que se conecte / desconecte apropiadamente.
En esta situación, cualquier actividad consciente de la ubicación se enlazaría al servicio. Cuando la primera actividad (por ejemplo, la actividad de la pantalla de inicio) se enlaza al servicio, el servicio se iniciará y se conectará a Google Play Services. El Binder
su servicio daría acceso a su LocationClient
a cualquier actividad relacionada. A medida que se desplaza entre las actividades, cada uno se vinculará al servicio a su vez y ser capaz de obtener los datos de ubicación actual y cada uno de ellos a medida que se destruyen.
Cuando el usuario abandona su aplicación (es decir, se destruye la última actividad), el servicio se detendrá automáticamente, lo que le permitirá desconectarse de Google Play Services.
Siempre y cuando se vincule al servicio de cada actividad que necesita datos de ubicación, no importa qué actividad inicia el servicio inicialmente: el servicio sólo se conectaría si es necesario.