Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Deshabilitar notificación de borrado para mi aplicación

Necesito escribir alguna aplicación que hará algún trabajo en segundo plano. Esta aplicación se ejecutará desde autostart y no habrá gui de inicio alguno. Gui puede ser llamada de clic en la notificación que se mostrará con autostart. Me preocupaba que, cuando el usuario borrar las notificaciones que perdió la oportunidad de llamar a este gui. Mi pregunta es que hay alguna manera de bloquear la limpieza de mi notificación por el usuario?

4 Solutions collect form web for “Deshabilitar notificación de borrado para mi aplicación”

Desea implementar un servicio de Foreground .

Esta es una notificación que no permitirá al usuario borrarla.

Notification notification = new NotificationCompat.Builder(this) .setTicker(r.getString(R.string.app_name)) .setSmallIcon(R.drawable.ic_launcher) .setContentTitle(r.getString(R.string.app_name)) .setAutoCancel(false) .setOngoing(true) .build(); 

La setOngoing(true) consigue esto, y setAutoCancel(false) impide que la notificación se vaya cuando el usuario toque la notificación.

La notificación se borrará si la aplicación se desinstala o llamando Cancelar o Cancelar todo: http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)

Es posible que desee examinar la posibilidad de realizar una notificación en la sección "en ejecución" de las notificaciones. Estas notificaciones no se borran cuando el usuario las borra.

Utilice el Notification.FLAG_NO_CLEAR y Notification.FLAG_ONGOING_EVENT . Esto debería darle el efecto que desea

Aunque @cja respuesta podría ser correcta, aunque le falta algunas líneas de algunos códigos (Notificación no mostrará o no se mostrará en su bandeja de notificación).

Esta es la función de trabajo completa:

 public void createNotification() { NotificationCompat.Builder notification = new NotificationCompat.Builder(this); notification.setTicker( "Ticker Text" ); notification.setSmallIcon(R.drawable.ic_launcher); notification.setContentTitle( "Content Title" ); notification.setContentText( "Content Text" ); notification.setAutoCancel( false ); notification.setOngoing( true ); notification.setNumber( ++NotificationCount ); Intent intent = new Intent(this, MainActivity.class); PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0); notification.setContentIntent(pIntent); notification.build(); NotificationManager nManger = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); nManger.notify(NotificationID, notification.build()); } 

NotificationID es int como ID de notificación.

Puede borrarlo usando esto:

 public void clear() { NotificationManager oldNoti = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); oldNoti.cancel( NotificationID ); } 

Asegúrese de que notification.setAutoCancel( false ); Se establece en false por lo que no se borrará cuando se presione el botón de borrado o cuando el gesto de desplazamiento esté presente.

Pocas líneas de códigos son originalmente de @cja post.

Alegrías / codificaciones felices …

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.