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()); } 
  • Acceda a Running service y llame a su método?
  • Cómo repetir la notificación diaria en el tiempo específico en androide a través del servicio de fondo
  • Llamar a getLayoutInflater () en lugares que no están en actividad
  • Android startService () tarda mucho tiempo en volver al subproceso de interfaz de usuario
  • Grabación de errores en vídeos android
  • Inicio del servicio de fondo cuando se enciende Android
  • Cómo mostrar un cuadro de diálogo de un servicio
  • Detener el servicio de fondo Cuando la aplicación va al fondo
  • Facturación en aplicaciones de Android y servicio bindService
  • Ejecutar servicio incluso si la aplicación está cerrada (matado)
  • La llamada de servicio vuelve a la actividad en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.