Llamada múltiple a startforeground?

He creado un servicio (EmailService) que envía correo electrónico … cada vez que necesito enviar un correo electrónico con mi aplicación, se inicia el servicio y pasar el ID del correo electrónico a través de una intención …

Estoy utilizando startforeground(id_of_email, mynotifcation); Para evitar su muerte y para mostrar una notificación al usuario del estado del envío del correo electrónico.

Tengo que permitir al usuario enviar múltiples correos electrónicos en el momento, por lo que cuando el usuario necesita enviar otro correo electrónico, vuelve a llamar a startservice con una nueva intención (diferente id de correo electrónico) … así que llama a startforeground(new_id_of_email, mynotifcation); de nuevo.

El problema es que la nueva llamada a startforeground sobrescribe la notificación anterior … (para que el usuario pierda la notificación anterior y no sepa lo que está pasando con su anterior correo electrónico)

Al examinar la fuente Service.startForeground Service.startForeground() muestra que varias llamadas a startForeground solo reemplazarán la notificación mostrada actualmente. De hecho, la llamada a startForeground es idéntica a stopForeground() , sólo con removeNotification conjunto removeNotification establecido siempre en true.

Si desea que el servicio muestre una notificación para cada correo electrónico en curso, tendrá que administrar cada notificación individualmente del servicio.

 public final void startForeground(int id, Notification notification) { try { mActivityManager.setServiceForeground( new ComponentName(this, mClassName), mToken, id, notification, true); } catch (RemoteException ex) { } } public final void stopForeground(boolean removeNotification) { try { mActivityManager.setServiceForeground( new ComponentName(this, mClassName), mToken, 0, null, removeNotification); } catch (RemoteException ex) { } } 

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r1/android/app/Service.java#Service.startForeground%28int%2Candroid.app.Notification % 29

  • Android: No se pudo importar la clase java.util.ArrayList en el archivo aidl
  • ServiceConnection :: onServiceConnected no se llama aunque Context :: bindService devuelve true?
  • ¿Cómo puedo activar automáticamente el inicio automático de mis aplicaciones en el menú de seguridad Xiaomi Mi4i?
  • No se puede iniciar el servicio
  • Cómo programar un evento de clics en Android
  • Android: mantener vivo un servicio de fondo (prevenir la muerte del proceso)
  • Android: Obtener una instancia de un servicio en ejecución
  • Cómo programar una ejecución de código en android o: ¿qué son exactamente los hilos de daemon en android?
  • ¿Puede existir un servicio de fondo sin su aplicación principal?
  • Android Service Exchange siempre se bloquea
  • ¿Cómo manejar las actualizaciones del oyente de ubicación dentro de un servicio en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.