2014-02-21 53 views
1

我正在開發應用程序,因爲我必須從GCM接收通知,我已成功接收通知,但它只顯示最近的通知,但我想在通知欄中顯示所有通知,並且每當它打開時,我都會將通知欄上的圖標這些都不適合我,請幫助我。下面在android中顯示通知清除通知

@Override 
protected void onHandleIntent(Intent intent) { 
    // TODO Auto-generated method stub 
    Bundle extras = intent.getExtras(); 
    String msg = intent.getStringExtra("message"); 
    GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this); 
    String messageType = gcm.getMessageType(intent); 

    if (!extras.isEmpty()) { 

     if (GoogleCloudMessaging. 
        MESSAGE_TYPE_SEND_ERROR.equals(messageType)) { 
       sendNotification("Send error: " + extras.toString()); 
      } else if (GoogleCloudMessaging. 
        MESSAGE_TYPE_DELETED.equals(messageType)) { 
       sendNotification("Deleted messages on server: " + 
         extras.toString()); 
      // If it's a regular GCM message, do some work. 
      } else if (GoogleCloudMessaging. 
        MESSAGE_TYPE_MESSAGE.equals(messageType)) { 
       // This loop represents the service doing some work. 
       for (int i=0; i<5; i++) { 
        Log.i(TAG, "Working... " + (i+1) 
          + "/5 @ " + SystemClock.elapsedRealtime()); 
        try { 
         Thread.sleep(500); 
        } catch (InterruptedException e) { 
        } 
       } 
       Log.i(TAG, "Completed work @ " + SystemClock.elapsedRealtime()); 
       // Post notification of received message. 
       //sendNotification("Received: " + extras.toString()); 
       sendNotification(msg); 
       Log.i(TAG, "Received: " + extras.toString()); 
      } 
     } 
    GcmBroadcastReceiver.completeWakefulIntent(intent); 
} 


mNotificationManager = (NotificationManager) 
      this.getSystemService(Context.NOTIFICATION_SERVICE); 


    Intent myintent = new Intent(this, ReceiveActivity.class); 
    myintent.putExtra("message", msg); 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
      myintent, PendingIntent.FLAG_UPDATE_CURRENT); 

    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
    .setSmallIcon(R.drawable.ic_stat_gcm) 
    .setContentTitle("GCM Notification") 
    .setStyle(new NotificationCompat.BigTextStyle() 
    .bigText(msg)) 
    .setContentText(msg); 

    NotificationCompat.InboxStyle inboxStyle = 
      new NotificationCompat.InboxStyle(); 
    String[] events = new String[6]; 
    // Sets a title for the Inbox style big view 
    inboxStyle.setBigContentTitle("Event tracker details:"); 

    int numMessages = 0; 

    // Moves events into the big view 
    for (int i=0; i < events.length; i++) { 

     inboxStyle.addLine(events[i]); 
    } 

    mBuilder.setStyle(inboxStyle); 
    AudioManager am = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE); 

    /* Even if the mode is set to "Sound & Vibration" in the phone, 
    * the status code that getRingerMode() returns is RINGER_MODE_NORMAL. 
    */ 
    switch (am.getRingerMode()) 
    { 
     case AudioManager.RINGER_MODE_VIBRATE: 
      mBuilder.setDefaults(Notification.DEFAULT_VIBRATE); 
      break; 
     case AudioManager.RINGER_MODE_NORMAL: 
      mBuilder.setDefaults(Notification.DEFAULT_SOUND); 
      break; 
     default: 
      mBuilder.setDefaults(Notification.DEFAULT_SOUND); 
    } 


    mBuilder.setContentIntent(contentIntent).setNumber(++numMessages); 

    // TO clear notification 

    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 

    mBuilder = new NotificationCompat.Builder(
      this).setSmallIcon(R.drawable.ic_stat_gcm) 
      .setAutoCancel(true) 
      .setContentTitle("GCM Notification") 
      .setStyle(new NotificationCompat.BigTextStyle() 
      .bigText(msg)) 
      .setContentText(msg); 


} 

回答

2

嘗試

我的代碼給出以下

mNotificationManager.notify(NOTIFICATION_ID++, mBuilder.build()); 

這爲我工作。代碼

mBuilder = new NotificationCompat.Builder(
      this).setSmallIcon(R.drawable.ic_stat_gcm) 
      .setAutoCancel(true) 
      .setContentTitle("GCM Notification") 
      .setStyle(new NotificationCompat.BigTextStyle() 
      .bigText(msg)) 
      .setContentText(msg); 
+0

其確定,但所有notifiacations

刪除最後一部分只顯示一個消息,即最後的數據僅 – Durga

+0

現在來到你的邏輯部分。 –

+0

我要改變我的邏輯 – Durga