quitar permanentes oreo notificaciones flotantes estado como color cambiar barra activar android notifications statusbar

permanentes - Notificación de la barra de estado de Android: haz que no sea eliminable y haz que vuelva a la aplicación(no se inicia una nueva instancia)



notificaciones flotantes android oreo (3)

Estoy desarrollando una aplicación de Android y quiero una notificación de barra de estado que el usuario no pueda borrar. ¿Alguien sabe cómo hacer eso? Los he visto con aplicaciones como Skimble, donde aparece una notificación no eliminable durante el uso de la aplicación.

Además, cuando el usuario hace clic / presiona la notificación, quiero que regrese a la instancia de la aplicación que ya se está ejecutando. Ahora mismo comienza una nueva instancia. De nuevo, como la aplicación Skimble, solo quiero volver a la instancia de la aplicación que ya se está ejecutando.

Gracias.


notification.setLatestEventInfo está en desuso, por lo que debe usar Notification.builder y si usa 2.X y una API más baja, debe usar NotificationComacpt.Builder y esto no es aplicable, y no pude hacer que mi notificación permanezca. así que usé setDeleteIntent y apunté a la misma actividad y en el método de reanudar simplemente llame al bloque de código que muestra su notificación. Entonces es un poco de trabajo alrededor.


Aquí está la solución para el NotificationCompat.Builder

NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_launcher) .setContentTitle("MyApp") .setContentText("MyMsg") .setOngoing(true);

Más en los documentos de Google .


Encontré una solución a este problema. Usé FLAG_ONGOING_EVENT para que la notificación persistiera. Aquí está el código:

String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); int icon = R.drawable.mypic; long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, when); notification.flags = Notification.FLAG_ONGOING_EVENT; Context context = getApplicationContext(); CharSequence contentTitle = "Title Text"; CharSequence contentText = "Content text."; Intent intent = new Intent(this, MyClass.class); intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); final int HELLO_ID = 1; mNotificationManager.notify(HELLO_ID, notification);