2

我需要使用通知管理器將給定的活動花費給另一個活動。 這是通知的代碼。通過通知管理器將數據從一個活動傳遞到另一個活動

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

當接收數據時,意圖爲空,並收集數據。我怎樣才能做到這一點?

+0

你的意思是說Intent是null,或者extras是空的?因爲你的鑰匙不匹配。 –

+0

extras null來到第二個活動 – user3737118

回答

0

更換

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

相關問題