Iniciar servicio desde la notificación

Es posible iniciar un servicio desde una notificación. La forma normal de iniciar una actividad funciona perfectamente, pero necesito algunas verificaciones previas de los datos antes de iniciar la aplicación.

Lo he probado incluyendo un servicio válido en la intención de notificación, pero no sucede nada.

3 Solutions collect form web for “Iniciar servicio desde la notificación”

Es posible iniciar un servicio desde una notificación.

Tienes que usar PendingIntent.getService en lugar de pendingIntent.getActivity.

Intent notificationIntent = new Intent(mContext, HandleNotificationClickService.class); PendingIntent pendingIntent = PendingIntent.getService(mContext, 0, notificationIntent, 0); Notification notification = new Notification(icon, tickerText,System.currentTimeMillis()); notification.setLatestEventInfo(mContext,contentTitle , contentText, pendingIntent); notification.flags = Notification.FLAG_AUTO_CANCEL | Notification.FLAG_ONGOING_EVENT; NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(CALLER_ID_NOTIFICATION_ID, notification); 

Cree un receptor de difusión, reciba el mensaje de la notificación y luego inicie el servicio.

 private void createNotification(String message) { Intent intent = new Intent(this, Yourservice.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getService(this, 0 /* Request code */, intent, 0); NotificationCompat.Builder notificationBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.icond) .setContentTitle("Start Launcher") .setContentText(message) .setAutoCancel(true) .setOngoing(true) .setWhen(System.currentTimeMillis()) .setContentIntent(pendingIntent); NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(ID_NOTIFICATION , notificationBuilder.build()); } 
  • Ejecutar servicio incluso si la aplicación está cerrada (matado)
  • ¿Cómo obtener una lista de servicios en ejecución en Android?
  • Servicio de Android: onBind (Intención) y onUnbind (Intención) se llama una sola vez
  • Descubrimiento del servicio de red error de tutorial android: Servicio perdido, el teléfono se desactiva
  • OnServiceConnected nunca llamado después del método bindService
  • IOS equivalente al servicio de Android?
  • Servicio de ejecución en el fondo?
  • Cómo enlazar una actividad a un servicio y controlar y administrar el servicio desde la actividad
  • Icono de servicio persistente en la barra de notificaciones
  • Diferencia entre los receptores de servicio y difusión en android
  • El servicio de Android solo se inicia en modo de depuración
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.