2

Je dois passer une activité à une autre en utilisant le gestionnaire de notifications. Ceci est le code de la notification.Transférer des données d'une activité à une autre avec le gestionnaire de notifications

private void notificacion(){ 
    // Preparamos el intent que será lanzado si la notificación es seleccionada 
    Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

    Intent intento = new Intent(PrincipalActivity.this, ActualizarVersion.class); 
    intento.putExtra("versionnueva",VersionNueva); 
    intento.putExtra("versionactual",VersionActual); 

    intento.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
    PendingIntent pIntent = PendingIntent.getActivity(PrincipalActivity.this, 0, intento, 0); 

    // Creamos la notificación. 
    CharSequence ticker = "Aviso de actualización"; 
    CharSequence contentTitle = "Calendario Verallia Sevilla"; 
    CharSequence contentText = "Hay disponible una nueva actualización"; 
    Notification noti = new NotificationCompat.Builder(PrincipalActivity.this) 
      .setContentIntent(pIntent) 
      .setTicker(ticker) 
      .setContentTitle(contentTitle) 
      .setContentText(contentText) 
      .setSmallIcon(R.drawable.icono_aplicacion_pequeno) 
      .setVibrate(new long[]{1000, 1000, 1000, 1000, 1000}) 
      .setSound(soundUri) 
      .build(); 
    NotificationManager notificationManager = 
      (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

    // Ocultamos la notificación si ha sido ya seleccionada 
    noti.flags |= Notification.FLAG_AUTO_CANCEL; 


    notificationManager.notify(0, noti); 
    //Log.i(TAG, "Servicio running"); 
} 

et c'est là que je collectionne des données sur l'activité ActualizarVersion

public void RecibirDatos(){ 
    Bundle extras = getIntent().getExtras(); 
    String versionnueva = extras.getString("versionnueva"); 
    String versionactual = extras.getString("versionactual"); 

    VersionActual=versionactual; 
    VersionNueva=versionnueva; 
} 

Lors de la réception des données, l'intention est nulle et recueille les données. Comment puis-je faire ceci?

+0

Voulez-vous dire que l'intention est nulle ou que les extras sont vides? Parce que vos clés ne correspondent pas. –

+0

Les extras nuls viennent à la deuxième activité – user3737118

Répondre

0

Remplacer

PendingIntent pIntent = PendingIntent.getActivity(PrincipalActivity.this, 0, intento, 0); 

avec

PendingIntent pIntent = PendingIntent.getActivity(PrincipalActivity.this, 0, intento, PendingIntent.FLAG_UPDATE_CURRENT); 

Parce que le dernier paramètre est indicateur pour indiquer comment contrôler les parties non précisées de l'intention qui peut être fourni lorsque l'envoi réel se produit. Vous ne pouvez donc pas définir sa valeur sur 0.

Veuillez regarder PendingIntent api docs.