Ejecución de múltiples servicios

Actualmente estoy construyendo alguna funcionalidad de detección de movimiento en mi aplicación. No he encontrado una manera de monitorear continuamente el acelerómetro sin mantener el teléfono despierto todo el tiempo. Al intentar superar esto, actualmente tengo un servicio que implementa SensorEventListener. Puedo iniciar este servicio a intervalos (usando el administrador de alarmas), obtener lecturas del acclerómetro del dispositivo, determinar si el dispositivo se está moviendo y luego cerrar el servicio. Generalmente, esto aparece como sigue:

public class MyService extends Service implements SensorEventListener { @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); /* Register this SensorEventListener with Android sensor service */ return START_STICKY; } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onDestroy() { /* Unregister SensorEventListener */ } /* SensorEventListener Implementation ************************/ @Override public void onAccuracyChanged(Sensor sensor, int accuracy) {} /* Receives callback when sensor values change */ @Override public void onSensorChanged(SensorEvent event) { /* Determine if moving & then call stopSelf() to shut service down */ } } 

Tengo un problema adicional, sin embargo, en que mi aplicación tiene un segundo servicio que se invoca en un horario diferente. Por lo que sé, ambos servicios se ejecutarán en el mismo hilo, lo cual no es bueno ya que podrían entrar en conflicto.

Necesito saber si existe una forma segura de ejecutar más de un servicio simultáneamente dentro de la misma aplicación . He considerado el uso de IntentService en lugar de la clase de servicio estándar. Soy consciente de que estos implementar su propio hilo de trabajo para el manejo de invocaciones. El problema es que no tengo ni idea de cómo puedo implementar el tipo de devoluciones de llamada asincrónicas requeridas por SensorEventListener desde dentro de un IntentService. Para decirlo de otra manera, no tengo garantía de que un método como onSensorChanged reciba una devolución de llamada antes de que IntentService complete su trabajo y se apague.

Cualquier sugerencia sobre una solución a este problema es muy apreciada.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.