2017-01-26 2 views
2

Я пытаюсь создать локализованные локальные уведомления при открытии пользователем активности. Я не могу видеть, как они сложены. Все они отображаются отдельно. Я упомянул о многих других проблемах с переполнением стека, но никто не работал. Ниже мой код:Уведомления не складываются

public class NotificationGroupActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    createNotifications(); 
} 

private void createNotifications() { 

    final String GROUP_KEY_EMAILS = "group_key_emails"; 
    NotificationManagerCompat notificationManager = 
      NotificationManagerCompat.from(this); 
    for(int i = 0; i<10;i++) { 

// Build the notification, setting the group appropriately 
     Notification notif = new NotificationCompat.Builder(this) 
       .setContentTitle("New mail from " + i) 
       .setContentText("SUBJECT " + i) 
       .setSmallIcon(R.mipmap.ic_launcher) 
       .setGroup(GROUP_KEY_EMAILS) 
       .setGroupSummary(true) 
       .build(); 
// Issue the notification 
     notificationManager.notify(i + 10, notif); 
    } 

} 
} 

ответ

0

Проблема здесь состоит в том, что вы используете разные идентификаторы (первый параметр метода .notify(int, Notification)) для каждого из уведомлений your'e выдающих.

Как documentation говорит:

Чтобы обновить это уведомление, как только вы его выдал, обновление или создать объект NotificationCompat.Builder, построить объект уведомления от него, и выдает уведомление с тем же ID вы использовали ранее.

Таким образом, вы должны заменить

notificationManager.notify(i + 10, notif); 

С:

notificationManager.notify(0 /* Or any constant*/, notif); 

Считают, что это будет заменить старое уведомление, если вы хотите добиться чего-то вроде того, что Whatsapp или Входящие сделать вас должен предоставить свой собственный макет для уложенных в стек уведомлений

Смежные вопросы