Icono de servicio persistente en la barra de notificaciones

Estoy tratando de averiguar cómo mostrar que mi servicio se está ejecutando con un icono de notificación persistente. Muchos ejemplos que he encontrado sólo envían un mensaje descartable a la barra de notificación. Quisiera un icono persistente que cuando usted tira abajo de la barra de la notificación demuestra que el servicio está funcionando y usted puede chascarlo para abrir la aplicación para cerrar el servicio abajo.

¿Puede alguien apuntarme a recursos o tutorial sobre cómo lograr esto cualquier APK está bien, pero me gustaría trabajar con 4.0 y superior.

Gracias.

2 Solutions collect form web for “Icono de servicio persistente en la barra de notificaciones”

Debe ser el mismo que un mensaje descartable excepto que cambie la Bandera.

Notification.FLAG_ONGOING_EVENT

en lugar de

Notification.FLAG_AUTO_CANCEL

Cuando se hace clic en una notificación, se ejecuta la intención que envía, por lo que debe asegurarse de que Actividad realice la tarea que desee.

private void showRecordingNotification(){ Notification not = new Notification(R.drawable.icon, "Application started", System.currentTimeMillis()); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, main.class), Notification.FLAG_ONGOING_EVENT); not.flags = Notification.FLAG_ONGOING_EVENT; not.setLatestEventInfo(this, "Application Name", "Application Description", contentIntent); mNotificationManager.notify(1, not); } 

Sé que esto es una vieja pregunta, pero era primero en una página de los resultados de Google así que agregaré la información para ayudar a otros.

Notificaciones persistentes

El truco es añadir .setOngoing a su NotificationCompat.Builder

Botón Cerrar

Un botón que abre la aplicación y cierra el servicio requiere un PendingIntent

Un ejemplo

Este ejemplo muestra una notificación persistente con un botón de cierre que sale de la aplicación.

MyService :

 private static final int NOTIFICATION = 1; public static final String CLOSE_ACTION = "close"; @Nullable private NotificationManager mNotificationManager = null; private final NotificationCompat.Builder mNotificationBuilder = new NotificationCompat.Builder(this); private void setupNotifications() { //called in onCreate() if (mNotificationManager == null) { mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); } PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP), 0); PendingIntent pendingCloseIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP) .setAction(CLOSE_ACTION), 0); mNotificationBuilder .setSmallIcon(R.drawable.ic_notification) .setCategory(NotificationCompat.CATEGORY_SERVICE) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setContentTitle(getText(R.string.app_name)) .setWhen(System.currentTimeMillis()) .setContentIntent(pendingIntent) .addAction(android.R.drawable.ic_menu_close_clear_cancel, getString(R.string.action_exit), pendingCloseIntent) .setOngoing(true); } private void showNotification() { mNotificationBuilder .setTicker(getText(R.string.service_connected)) .setContentText(getText(R.string.service_connected)); if (mNotificationManager != null) { mNotificationManager.notify(NOTIFICATION, mNotificationBuilder.build()); } } 

MainActivity debe manejar las intenciones cercanas.

 @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); String action = intent.getAction(); if (action == null) { return; } switch (action) { case MyService.CLOSE_ACTION: exit(); break; } } private void exit() { stopService(new Intent(this, MyService.class)); finish(); } 

AnotherActivity debe ser finalizar y enviar una intención de salida a MainActivity

 @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); String action = intent.getAction(); if (action == null) { return; } switch (action) { case MyService.CLOSE_ACTION: exit(); break; } } /** * Stops started services and exits the application. */ private void exit() { Intent intent = new Intent(getApplicationContext(), MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setAction(Stn1110Service.CLOSE_ACTION); startActivity(intent); } 

¿Puede alguien apuntarme a recursos o tutorial

http://developer.android.com/training/notify-user/build-notification.html

  • Actividad de Android sin GUI
  • Error interno al utilizar Descubrimiento de servicio de red en Android
  • Ejemplo de servicio bind / unbind (android)
  • Subida de imágenes de Android: ¿Utilizar actividad o servicio?
  • Android: mantener el servicio en ejecución cuando se mata la aplicación
  • ¿Puedo iniciarService desde la aplicación # onCreate ()?
  • Ejecutar servicio incluso si la aplicación está cerrada (matado)
  • El servicio no se reinicia después de que "Clear Memory" + appWidget se bloquea
  • Obtener ubicación GPS a través de un servicio en Android
  • Diseño de hilos múltiples de Android Service
  • ¿Cómo reiniciar automáticamente un servicio incluso si la fuerza del usuario lo cierra?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.