Cómo utilizar NotificationCompat.Builder y startForeground?

Pregunta corta:

Estoy intentando utilizar la clase de NotificationCompat.Builder para crear una notificación que será utilizada para el servicio, pero por alguna razón, no veo la notificación, o no puedo cancelarla cuando el servicio debe ser Destruido (o dejar de estar en primer plano).

mi código:

@Override public int onStartCommand(final Intent intent, final int flags, final int startId) { final String action = intent == null ? null : intent.getAction(); Log.d("APP", "service action:" + action); if (ACTION_ENABLE_STICKING.equals(action)) { final NotificationCompat.Builder builder = new Builder(this); builder.setSmallIcon(R.drawable.ic_launcher); builder.setContentTitle("content title"); builder.setTicker("ticker"); builder.setContentText("content text"); final Intent notificationIntent = new Intent(this, FakeActivity.class); final PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent, 0); builder.setContentIntent(pi); final Notification notification = builder.build(); // notification.flags |= Notification.FLAG_FOREGROUND_SERVICE; // notification.flags |= Notification.FLAG_NO_CLEAR; // notification.flags |= Notification.FLAG_ONGOING_EVENT; startForeground(NOTIFICATION_ID, notification); // mNotificationManager.notify(NOTIFICATION_ID, notification); } else if (ACTION_DISABLE_STICKING.equals(action)) { stopForeground(true); stopSelf(); // mNotificationManager.cancel(NOTIFICATION_ID); } return super.onStartCommand(intent, flags, startId); } 

Los comandos comentados son mis ensayos para que funcione. Ninguno funcionó por alguna razón.

Incluso agregó una actividad falsa ya que quería un ContentIntent, pero todavía no funciona.

Alguien puede ayudarme porfavor?

Tuve el mismo problema hace un tiempo, y me enteré de que por alguna razón, el ID de notificación 0 no funciona bien con startForeground() , es el valor de NOTIFICATION_ID en su código?


EDIT: la documentación se ha actualizado para indicar que 0 es una ID no válida

  • Diferencia entre los receptores de servicio y difusión en android
  • Revisión 2: Cómo pasar los datos de un servicio de fondo / subproceso a alguna otra actividad que no sea MainActivity que creó el servicio de fondo
  • En servicio de facturación de aplicaciones que se mueren a veces
  • ¿Es posible ejecutar mi servicio por tiempo indefinido?
  • Conexión a un servicio web desde android - AsyncTask o Service?
  • No puedo encontrar la causa de mi accidente con este seguimiento de pila
  • La notificación de la barra de estado de Android lanza una nueva aplicación aunque esté en ejecución. ¿Cómo sincronizar la aplicación de lanzamiento desde el icono de la aplicación y la notificación de barra de estado?
  • Actividad de Android sin GUI
  • NotificationManager.cancel () no funciona para mí
  • Android Service.startForeground NO respeta la id unicidad de notificación
  • Android startService () tarda mucho tiempo en volver al subproceso de interfaz de usuario
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.