使用通知管理器将数据从一个活动传递到另一个活

时间:2015-11-15 10:50:08

标签: android android-intent android-pendingintent notificationmanager

我需要使用通知管理器将给定的活动花费在另一个上。 这是通知的代码。

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");
}

这是我收集有关活动ActualizarVersion

的数据的地方
public void RecibirDatos(){
    Bundle extras = getIntent().getExtras();
    String versionnueva = extras.getString("versionnueva");
    String versionactual = extras.getString("versionactual");

    VersionActual=versionactual;
    VersionNueva=versionnueva;
}

接收数据时,intent为null并收集数据。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

替换

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

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

因为最后一个参数是标志,表示如何控制实际发送时可以提供的意图的哪些未指定部分。因此,您无法将其值设置为0.

请查看PendingIntent api docs