StartForeground () no muestra mi notificación
Estoy tratando de hacer que mi Service
ejecute en primer plano. He intentado usar este ejemplo (busque la sección " Ejecutar un servicio en primer plano "), pero startForeground()
no muestra mi notificación. Y no se lanzan excepciones. Para que se muestre, necesito usar NotificationManager
como aquí explicado. Con NotificationManager
mi notificación funciona, pero no estoy seguro de que mi Service
es primero plano después de esta llamada "silenciosa" a startForeground()
.
¿Qué puede estar mal?
- El host de destino no debe ser nulo o configurado en parameters.scheme = null, host = null
- Excepción de puntero nulo que hace difícil pasar un arreglo usando ksoap
- Servicio Web SocketTimeOutException provoca inconsistencia de base de datos
- Pestaña servidores no visible en eclipse v3.7.2
- Envío de un mensaje sencillo de Servicio a Actividad
EDIT : Acabo de probar este proyecto de muestra que debe demostrar startForeground()
, pero no funciona! Yo uso API v7.0, lo probé tanto en emulador y dispositivo real (SE Xperia Neo). La notificación no aparece.
EDIT2 : si trato de llamar a setForeground()
entonces tengo una advertencia setForeground: ignoring old API call
.
También traté de usar startForegroundCompat()
como se describe aquí , pero el efecto es absolutelly el mismo. Compruebo si mi servicio es primer plano usando ActivityManager.RunningServiceInfo
como se describe aquí y veo que mi servicio no es de primer plano.
- Error en Callin Java webservice de Android usando k-Soap
- Notificar a un servicio de Android cuando un cliente vinculado se desconecta
- Que cliente es mejor HttpURLConnection o HttpClient en android?
- ¿Cuál es la mejor práctica para compartir modelos entre un servidor API WEB y una aplicación cliente Android?
- No puedo conectarme a mi servicio web
- Loop en IntentService
- Phonegap Android Internet no funciona
- Se esperaba BEGIN_OBJECT pero era BEGIN_ARRAY en la línea 1 columna 2 (edición pequeña)
Acabo de notar que startForeground()
no muestra el icono de notificación si el parámetro id
está establecido en 0
…
startForeground(0, notification); // Doesn't work... startForeground(1, notification); // Works!!!
Espero que eso pueda ayudar a alguien que esté atascado en esto.
Además de la mejor respuesta. Usted también debe comprobar que usted ha llamado setSmallIcon
. En mi teléfono Android, no puedo conseguir lo que esperaba sin llamar a setSmallIcon
DMitry. Acabo de sufrir su problema y encontré la causa.
Si su aplicación cambia el estado de un COMPONENTE PackageManager.setComponentEnabledSetting())
Android elimina el servicio de foregraound y su icono de notificación.
Bug informó en Nov, 2011
Esto podría ser un hilo antiguo, pero me gustaría añadir lo que acabo de aprender que no se menciona todavía:
Es posible que un Service
siga vivo después de que stopSelf()
se llame porque hay Activity
que se ha vinculado al Service
. Como cuestión de hecho, el startForeground()
simplemente no va a mostrar la notificación ni dar ninguna excepción en esta circunstancia.
¿Su servicio es un servicio iniciado o un servicio enlazado? Tuve el mismo problema con un servicio enlazado, pero al iniciar el servicio antes de enlazar me permitió llamar a startForeground(int, notification)
y hacer que se mostrara la notificación.
- ¿Cómo manejar eventos de toque en un fragmento?
- : App: dexDebug ExecException terminado con un valor de salida diferente de cero 2