sistema servicio remote quitar permanentes peel oreo ocultar notificaciones notificacion limpiar las iconos flotantes desactivar dela datos como barra android service notifications

remote - quitar notificacion sin servicio de datos android



Ícono de servicio persistente en la barra de notificaciones (2)

Sé que esta es una pregunta antigua, pero fue la primera en una página de resultados de Google, así que agregaré información para ayudar a otros.

Notificaciones persistentes

El truco es agregar .setOngoing a su NotificationCompat.Builder

Botón de cierre

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 los intentos cercanos.

@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 estar finalizado y enviar un intento 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); }

¿Alguien puede indicarme recursos o tutoriales?

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

Estoy intentando descubrir cómo mostrar que mi servicio se está ejecutando con un ícono de notificación persistente. Muchos ejemplos que he encontrado solo envían un mensaje descartable a la barra de notificaciones. Quería un icono persistente que cuando se abre la barra de notificaciones muestra que el servicio se está ejecutando y puede hacer clic en él para abrir la aplicación y cerrar el servicio.

¿Alguien puede indicarme recursos o tutoriales sobre cómo lograr esto? Cualquier APK está bien, pero me gustaría trabajar con 4.0 o más.

Gracias.


debe ser lo mismo que un mensaje desechable, excepto que cambies la bandera.

Notificación.FLAG_ONGOING_EVENT

en lugar de

Notificación.FLAG_AUTO_CANCEL

Cuando se hace clic en una notificación, se ejecuta la intención que envía, de modo que se asegura de que Activity 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); }