android - studio - ¿Hay alguna manera de mantener activa la notificación hasta que el usuario haga clic en borrar?
manual de programacion android pdf (1)
Para API debajo de 11, puede establecer Notification.FLAG_NO_CLEAR. Esto se puede implementar de esta manera:
// Create notification
Notification note = new Notification(R.drawable.your_icon, "Example ", System.currentTimeMillis());
// Set notification message
note.setLatestEventInfo(context, "Some text", "Some more text", clickIntent);
// THIS LINE IS THE IMPORTANT ONE
// This notification will not be cleared by swiping or by pressing "Clear all"
note.flags |= Notification.FLAG_NO_CLEAR;
Para niveles de API superiores a 11, o al usar la Biblioteca de soporte de Android, uno puede implementarlo así:
Notification noti = new Notification.Builder(mContext)
.setContentTitle("title")
.setContentText("content")
.setSmallIcon(R.drawable.yourIcon)
.setLargeIcon(R.drawable.yourBigIcon)
.setOngoing(true) // Again, THIS is the important line. This method lets the notification to stay.
.build();
o puede usar la clase NotificationCompat.
public NotificationCompat.Builder setAutoCancel (boolean autoCancel)
Establecer esta bandera lo hará para que la notificación se cancele automáticamente cuando el usuario haga clic en el panel. El conjunto PendingIntent con setDeleteIntent (PendingIntent) se transmitirá cuando se cancele la notificación.
Tengo un servicio que se ejecuta en segundo plano y notifica al usuario si tiene un PDF nuevo para ver. Cuando hacen clic en la notificación, se abre una ventana que les da la opción de descargar el (los) PDF (s). El hecho es que una vez que el usuario cierra esta ventana no tiene forma de volver a esa pantalla ya que la notificación se borró cuando hicieron clic en ella. Deseo que esta notificación permanezca activa hasta que el usuario haga clic en ''Borrar notificaciones'' en el caso de que cierren accidentalmente la ventana que se abre la notificación. *
* La razón por la que no creo una ventana / vista de acceso permanente en la aplicación es porque las notificaciones son sensibles al tiempo. Después de 20 minutos, los archivos PDF están disponibles para que los vean en cualquier momento. Crear otra vista permanente sería redundante. Esta notificación solo está allí para permitir al usuario ver los archivos PDF un poco antes.
EDITAR: siguiendo la respuesta proporcionada por @Rahul Gupta, descubrí que mi aplicación estaba usando ''FLAG_AUTO_CANCEL'' si no especificaba una bandera. Entonces, para mi solución, puse otra bandera. Como uso Titanium Appcelerator, no tengo una función setAutoCancel (), así que no era una opción para mí.