Determinar si la Actividad es llamada por una Notificación
Estoy usando una Actividad con varias pestañas . Desde una parte diferente de la aplicación, las notificaciones se crean para decirle al usuario que algo ha cambiado. Ahora he conseguido llamar a la actividad , cuando el usuario hace clic en la notificación . Pero, ¿cómo puedo determinar si una Actividad se crea de la manera "normal" durante el tiempo de ejecución o haciendo clic en la notificación?
(Dependiendo de la notificación que haya hecho clic, quiero pasar a otra pestaña en lugar de mostrar la pestaña principal.)
- Notificación local en el teléfono 3.3.0
- Imagen de botón de reproducción / pausa en la notificación, Android
- ¿Puedo anular el icono predeterminado de notificación push en android desde el icono de la aplicación hasta el icono personalizado?
- NotificationManager getActiveNotifications () para dispositivos antiguos
- Cómo mostrar el recuento de notificaciones en el icono del lanzador de aplicaciones
Intent intent = new Intent(ctx, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(ctx, 0, intent, 0); // TODO: Replace with .Build() for api >= 16 Notification noti = new Notification.Builder(ctx) .setContentTitle("Notification" .setContentText(this.getName()) .setSmallIcon(R.drawable.icon) .setContentIntent(pendingIntent) .setDefaults( Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS) .setAutoCancel(true) .getNotification(); NotificationManager notificationManager = (NotificationManager) ctx .getSystemService(Context.NOTIFICATION_SERVICE); // Hide the notification after its selected notificationManager.notify(this.getId(), noti);
Esto con éxito llama a mi MainActivity. ¿Pero hay algún método que se llama cuando la Actividad es activada por el objeto pendingIntent
?
Pensado para definir algo como esto en la actividad principal :
onTriggeredByNotification(Notification noti){ //determinte tab, depending on Notification. }
- Notificación de Android en el momento
- Android, lanzar una aplicación desde un servidor remoto
- FCM push notification issue: - "error": "NotRegistered"
- Notificación múltiple de Android
- Cómo crear una notificación con NotificationCompat.Builder?
- La notificación de estilo multimedia no funciona después de la actualización a Android 5.0
- No hay sonido de notificación personalizado
- Actualizar la notificación ampliable, volver a expandirla, incluso después de que el usuario se derrumbó
Pase un valor booleano de la notificación y compruebe lo mismo en el método onCreate de la actividad.
Intent intent = new Intent(ctx, MainActivity.class); intent.putExtra("fromNotification", true);
…
if (getIntent().getExtras() != null) { Bundle b = getIntent().getExtras(); boolean cameFromNotification = b.getBoolean("fromNotification"); }
Puede probar esto en su Notificación
Intent intent=new Intent(); intent.setAction("Activity1");
En el método onNewIntent()
la actividad y obtenga acción para que pueda determinar si la actividad se llama o no.
Mejor que usar el campo de acción reservado de su intención como lo especifica @ricintech, podría usar un parámetro extra en su intento pendiente y detectarlo en su método onCreate
y en su método onNewIntent
dentro de su actividad.
- Cómo hacer un recolector de ruedas
- ¿Convertir fechas enteras / épocas a la marca de tiempo de unix en Java?