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.
- Servicio androide con repetición de hilo en el fondo con el bloqueo parcial de la estela
- Android de larga duración 'servicio'
- ¿Por qué los servicios de android se ejecutan en el hilo de la interfaz de usuario?
- Inicio de un servicio en un subproceso separado
- Sincronización entre servicio local con un hilo y una actividad
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.
- ¿Cuándo usar un hilo o servicio en Android?
- Método de servicio de Android llamado en hilo diferente. ¿Sigue funcionando en el hilo principal?
- Detención de un subproceso dentro de un servicio
- Servicio de fondo Android en Delphi XE5
- GREF que aumenta / que disminuye en servicio multi-hilo (aidl) - qué significa?
- Llamar stopSelf () en servicio mientras el subproceso está en ejecución
- ¿Dónde detener / destruir subprocesos en la clase de servicio de Android?
- ¿Cómo usar SQLite de Servicios en Android?
Ya que podrían entrar en conflicto.
¿Cómo?
Necesito saber si existe una forma segura de ejecutar más de un servicio simultáneamente dentro de la misma aplicación
No hay ningún problema intrínseco en tener más de un servicio simultáneamente dentro de la misma aplicación, más que hay un problema intrínseco en tener más de una actividad en la misma aplicación.
Cualquier sugerencia sobre una solución a este problema es muy apreciada.
Usted no ha demostrado un problema.
- Cree los botones de android mediante programación utilizando la disposición XML como plantilla
- Cómo cargar una imagen almacenada en una matriz de bytes a WebView?