Android: comprueba si mi servicio se está ejecutando en segundo plano
Estoy funcionando un servicio para conseguir notificaciones cada 1 hora en mi uso.
El servicio sin duda funciona cada 1 h; Lo comprobé usando el Logcat.
- Singleton se destruye
- ¿Existe un equivalente GCM de Android para el servicio de comentarios de emisión Push de iOS?
- Android Actualizaciones periódicas de la ubicación GPS con AlarmManager dentro de un servicio
- Cómo iniciar la aplicación Android de sólo servicio
- Problema al ejecutar un script desde init.rc en el arranque del dispositivo
Pero puesto que estoy comenzando este servicio en onResume()
de mi MainActivity, quiero comprobar si el servicio está funcionando ya, e iniciarlo solamente si no está funcionando.
He utilizado este código:
private boolean isMyServiceRunning() { ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { if ("com.android.MyApp.MyServices.NotificationsService".equals(service.service.getClassName())) { return true; } } return false; }
Pero siempre me pongo falso .
Así que he comprobado lo que sale service.service.getClassName()
. Y mi servicio no está en la lista.
¿Es porque mi aplicación es desconocida? ¿o algo mas?
- Utilizar Otto para actualizar un listadapter de un GcmListenerService
- Uso de facebook android sdk desde el servicio
- Creación de un servicio de fondo en Android
- ¿Se puede anidar un servicio en una aplicación?
- Receptor de difusión de portapapeles android
- Android: Transmisión de datos entre servicio y actividad
- El servicio no se detendrá cuando el método stopService se llame
- Ciclo de vida de BroadcastReceiver
Sé que es un poco tarde, pero esta respuesta podría ayudar a otros que están buscando lo mismo.
¿Ha iniciado su servicio mediante context.startService()
?
Asegúrese de que el archivo de manifiesto contiene lo siguiente:
<service android:name="com.android.MyApp.MyServices.NotificationsService" />
private boolean isMyServiceRunning(Context mContext) { ActivityManager manager = (ActivityManager) mContext .getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo service : manager .getRunningServices(Integer.MAX_VALUE)) { if (**HERE_YOUR_SERVICE'S_CLASS_NAME**.class.getName().equals( service.service.getClassName())) { return true; } } return false; }
// Tengo el servicio del GPS del fondo y he comprobado con éxito que mi servicio del GPS está funcionando o no.
// Codificación feliz …
- ¿Dónde puedo obtener gridviewitem flip animación de efectos simlar a appygeek?
- Cómo agregar ScrollView a GLSurfaceview en Opengl ES2.0 en Android